微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在ReactJS中点击按钮重定向

如何解决如何在ReactJS中点击按钮重定向

我想在单击时重定向到“ ./createadd.js”(函数运行时)。我怎么能够?我曾尝试使用history.push()和反应路由器,但没有任何效果

APP.JS:

import { render } from '@testing-library/react';
import React from 'react';

class App extends React.Component {
  render(){

  this.selladd = () => {     //Function to redirect to another page

  }

  return (
  <div style={{position: "absolute",left: 1300,top: 25,overflowX: "hidden"}}>
    <button onClick={this.selladd}>Sell</button>
  </div>);
    }
}

export default App;

解决方法

您可以使用链接和历史记录。push()

 import { render } from '@testing-library/react';
    import React,{ Component } from 'react';
    
    class App extends React.Component {
 constructor(props) {
        super(props);
this.selladd =this.selladd .bind(this);
}
selladd (){
 this.props.history.push({ pathname: ''  })
}
      render(){

      return (
      <div style={{position: "absolute",left: 1300,top: 25,overflowX: "hidden"}}>
        <button onClick={this.selladd}>Sell</button>
      </div>);
        }
    }

import { Link } from 'react-router-dom';
     <Link to={{ pathname: '' }}  >
     <button onClick={this.selladd}>Sell</button>
      </Link>
,

您需要重定向到文件createadd.js中的另一个组件。

将您的组件包装为:

export default withRouter(App)

并为您的路线添加路径,例如:

<Route exact path='/createadd' component={CreateAddComponent} />

从Createadd.js文件导入组件的位置是CreateAddComponent。

然后在您的函数中,只需执行

this.props.history.push('/createadd')
,

您可以使用重定向到任何页面

this.props.history.push("your link here");

或者,如果您使用react-router-dom,也可以使用

<Redirect to="path" />

或者为什么不将按钮包装在href标签中呢?

<a href ="link"> 
   <button>Click Here</button>
</a>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。