2

反応ネイティブアプリを開発しています。アプリでのナビゲーションにreact-native-router-fluxライブラリを使用しています。

ライブラリは正常に動作していますが、ナビゲート中に反応ライフサイクル メソッドが呼び出されません。

たとえば、ページ 2 で [戻る] ボタンを押した場合、ページ 1 に移動し、ページ 2 の componentWillUnmount() が呼び出されますが、ページ 1 のライフサイクル メソッドは呼び出されません

新しい状態に従ってページ 1 を更新したい。

どんな助けでも大歓迎です。

4

1 に答える 1

0

戻るときは、デフォルトActions.pop()で が引数なしで呼び出されます。ページ 1 を更新するには、戻るボタンの機能をオーバーライドして を呼び出す必要がありますActions.pop({refresh:{<propsToSetToPage1>}})。これはcomponentWillReceiveProps(nextProps)、ページ 1 でトリガーされます。ここで、nextProps は、pop() に配置した新しい props です。

以下は、react-native-router-flux のドキュメントからのものです。

Actions.pop() will pop the current screen. It accepts following optional params:
    {popNum: [number]} allows to pop multiple screens at once
    {refresh: {...propsToSetOnPreviousScene}} allows to refresh the props of the scene that it pops back to

PS。Android 向けに開発している場合は、ユーザーがハードウェアの [戻る] ボタンを押したときにもこれを行うことができます。React Native の公式ドキュメントでBackAndroidを確認してください。

于 2016-09-28T16:57:11.907 に答える