如何在我的this.props中添加历史记录?用于推送链接

时间:2019-05-30 06:13:56

标签: reactjs

  changeRoutePath = (e) =>{
      e.preventDefault();
      this.props.onClose();
      this.props.history.push('/company/orgStructure');
 };
 <Link
        to={{
          pathname: '/company/orgStructure',
          state: {
            fromNotifications: true
                 }
          }}
         onClick={(e) => this.changeRoutePath(e)}>
       Prevent
</Link>

我遇到了Uncaught TypeError错误:无法读取未定义的属性'push'

需要进入/ company / orgStructure页面并获取一些状态信息!怎么做? 如果我只使用没有onclick的链接,则不能使用this.props.onClose来关闭模式。如何推送信息并转到orgStructure?
console.log(this.props);

bgClose: false
className: ""
container: true
employeeCode: "00-005424"
escClose: false
onClose: ƒ ()
open: true
showModalEmployeeShortProfile: ƒ ()
stack: true
template: null
title: "Профиль сотрудника"
width: 960 

1 个答案:

答案 0 :(得分:0)

如果您的组件未与react-router-dom绑定,则您不会在道具中获取它们的方法,在这里您将无法访问位置,历史记录以及在您的道具中进行匹配,这些道具是来自react router的道具。表示您的组件未与路由器连接。

您只需要从反应路由器dom(这是一个HOC)中导入Router,然后将组件包装在其中,这样您就可以访问道具中的历史记录。

import {withRouter} from 'react-router-dom'
class yourComponent extends React.Component{
render(){}
}
export default withRouter(yourComponent)