有没有办法知道一个特定的道具是否更新,而不使用React中的状态?

时间:2017-06-06 15:47:53

标签: reactjs redux react-redux antd

我使用的是React,Redux和一些antd组件

我使用this modal提醒用户注意错误,但如果你看一下,它不是一个组件,它就是一个功能,所以我现在正在使用{{1}像这样:

componentDidUpdate

问题是,如果我一次对状态进行多次更改,例如对API进行多次调用并在不同时间更改状态,则此模式会多次打开。

我可以使用state来做类似

的事情
componentDidUpdate () {
  if (this.props.states.ErrorReducer.displayError) {
    error(() => {
      this.props.dispatch(ErrorActionCreators.acceptError())
    }, this.props.states.ErrorReducer.errorMessage )
  }
}

但我避免使用React状态。

无论如何,我可以检查组件上是否更改了一个特定道具?

1 个答案:

答案 0 :(得分:1)

You can use the lifecycle method, componentWillReceiveProps. This gets called every time props are updated. Here's a link for help componentWillreceiveProps and a code snippet:

componentWillReceiveProps(nextProps){
  if(this.props !== nextProps){
    // your code and conditions go here
  }
}

You can actually compare the old props (this.props) with the new or updated props (nextProps).