2

我正在做一个 react-native 项目。

我有调用组件 B 的组件 A。

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

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

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

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

但是,props.workComplete 保持设置状态,我不确定如何取消设置,因此当此组件中的道具发生更改时,我会不断收到警报。

如何重置该属性值?

4

1 回答 1

0

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

componentWillReceiveProps(nextProps) {
    if (nextProps.workComplete !== this.state.workComplete) {
      this.setState({ workComplete: true }, () => window.alert('work was completed'));
    }
  }
于 2017-03-24T00:31:25.133 回答