使用后,如何重置nextProps.arbitraryValue?

时间:2017-03-24 00:16:18

标签: react-native react-native-navigation

我正在研究一个本机反应项目。

我有组件A,它调用组件B.

当屏幕B完成工作时,它会调用:

NavigationActions.pop({refresh: {workComplete: true}})

在屏幕A上,我有以下代码:

  componentWillReceiveProps(nextProps) {
    if (nextProps.workComplete) {
      window.alert('work was completed');
    }
  }

但是,props.workComplete保持设置状态,我不知道如何取消设置,所以当在此组件中更改道具时,我会不断收到警报。

如何重置该属性值?

1 个答案:

答案 0 :(得分:0)

不确定你的意思是什么,但每次更换道具时都会调用它,因为workComplete设置为true,它会不断提醒你。您可以将workComplete作为状态值并执行以下操作:

componentWillReceiveProps(nextProps) {
    if (nextProps.workComplete !== this.state.workComplete) {
      this.setState({ workComplete: true }, () => window.alert('work was completed'));
    }
  }