history.location.replace不是使用react-router v4的函数

时间:2018-05-05 04:48:14

标签: javascript reactjs redux

在redux' componentWillRecevieceProps中,我可以使用反应路由器进行重定向吗?我这样做了

componentWillReceiveProps(nextProps) {
    if(nextProps.user.isAuthenticated !== this.props.user.isAuthenticated && nextProps.user.isAuthenticated) {
        console.log(nextProps.history)
        nextProps.history.location.replace('/dashboard')
    }
  }

但错误发生在nextProps.history.location.replace('/dashboard')我还尝试了this.history.location.replace('/dashboard')

但是当我console.log(nextprops.history)时,方法就在那里。问题是什么?

2 个答案:

答案 0 :(得分:1)

您需要使用this.props.history.push('/dashboard')

答案 1 :(得分:0)

location history中的对象没有此方法。查看documentation。它可以在history上直接访问:

nextProps.history.replace('/dashboard')