在componentWillRecieveProps

时间:2018-03-24 06:06:49

标签: reactjs redux

如果我的道具出现错误,我想提醒一次并重定向到某个地方,我在我的组件中做了这个

componentWillReceiveProps(nextProps) {

    if(nextProps.error !== '' && nextProps.error) {
      alert(nextProps.error)
      this.props.history.replace('/dashboard')
    }
  }

这项工作当我访问路线但如果我从登录导航时多次触发问题,我不确定问题是什么。

1 个答案:

答案 0 :(得分:0)

  

在安装的组件接收新道具之前调用componentWillReceiveProps()。如果您需要更新状态以响应prop更改(例如,重置它),您可以比较this.props和nextProps并使用此方法中的this.setState()执行状态转换。

如果没有更多的应用程序代码可供查看,很难知道为什么多次调用您的方法。虽然我们知道某些东西导致新的道具多次传递给你的组件,但没有看任何东西。但是,为了解决这个问题,您可以在组件上设置一些状态以忽略运行

alert(nextProps.error)
this.props.history.replace('/dashboard')

以后你不想这样做。