2

私は反応ネイティブプロジェクトに取り組んでいます。

コンポーネント 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 に答える