

react-nativeのreact-navigationで画面遷移を行っていますが  
「←」で戻った際に、画面を更新するにはどうしたらよいでしょうか。

画面構成は「リスト」と「詳細」です。  
「リスト」画面を表示している状態で”あるアプリ外からのトリガー”で「詳細」画面に遷移します。  
そこから戻った時にリストを更新したいのです。

戻った時に「リスト」では何かイベントが発生するのでしょうか。  
またStackNavigatorのonNavigationStateChangeでは画面遷移を捕捉できますが、  
そこで「リスト」のインスタンスを取得できればいいのかもしれませんが  
どうやって取得できるのでしょうか。


CC BY-SA 4.0
2019-07-08T07:14:47.233
56491
2022-02-06T14:16:21.927
2019-07-08T07:26:40.063
20996
20996
question
react-native
react-nativeのreact-navigationで”戻った時”に画面を更新したい


`focus` イベントが使えます。

スタックされていた「リスト」スクリーンにフォーカスが戻ったとき、 `focus` イベントが発火します。

やり方としては３通りあります。

  1. `focus` イベントをリッスンする
  2. `useFocusEffect` hook を使う
  3. `useIsFocused` hook を使う

公式ドキュメントに、詳細なコードサンプルが載っています。

<https://reactnavigation.org/docs/function-after-focusing-screen/>


CC BY-SA 4.0
2022-02-06T14:16:21.927
86178
2022-02-06T14:16:21.927
51277
56491
answer