在github上编辑这篇文章

componentWillReceiveProps#

(object nextProps)此事件的参数是指要更新的props.

当挂载的组件接收到新的props时被调用。此方法应该被用于比较this.props 和 nextProps以用于使用this.setState()执行状态转换。这句话的意思是,你可以在这里写一些判断来接收传递过来的props来设置当前组件的state,这是很有用的一个事件,因为理论上是每个组件的state应该是独立的,如果调用者想要改变组件的state,就必须通过传递props方式,这时候的转化就发生在componentWillReceiveProps中了。比如我在x-dialog中的写法:

  componentWillReceiveProps(newProps) {
    console.log(newProps.isShow, this.state.isShow);
    if (newProps.isShow && !this.state.isShow) {
      this.show(newProps);
    } else if (!newProps.isShow && this.state.isShow) {
      this.hide(newProps);
    }
  }