2017-09-16 16 views
0

フルナビゲーション状態にアクセスするには、Reduxに接続せずに画面に表示します。Reduxに接続せずに画面のナビゲーション状態にアクセス

私は私が私の画面でstateキーが含まれていますが、その中にkeyrouteNameしかあり小道具navigationを持って知っています。 routes階層で完全な状態を欲しいと思います(同じreact-navigationが内部で保存され、navigationOptionsになります)。

それは可能ですか?

答えて

0

onNavigationStateChange propでナビゲーションスタックと画面を追跡できます。詳細はhere in the docsをご覧ください。

export default() => (
    <AppNavigator 
    onNavigationStateChange={(prevState, currentState) => { 
     const currentScreen = getCurrentRouteName(currentState); 
     const prevScreen = getCurrentRouteName(prevState); 

     if (prevScreen !== currentScreen) { 
     // the line below uses the Google Analytics tracker 
     // change the tracker here to use other Mobile analytics SDK. 
     tracker.trackScreenView(currentScreen); 
     } 
    }} 
    /> 
); 
+0

しかし、私はこのどこかを保存する必要があります。画面に*直接アクセスすることはできません。 – Kerumen

+0

asyncstorageを使用して、それをreduxソリューションなしで保存することができます。もう1つの解決策は、ナビゲーションステートがこのコンポーネントの状態に変化した後、この状態変数を子にscreeenPropとして渡すときに、状態のあるコンポーネントを使用してcurrentStateを保存することです。これはちょっとした解決策ですが、うまくいくかもしれません。 [こちら](https://github.com/react-community/react-navigation/issues/51#issuecomment-323536642)がその例です。 – bennygenel

+0

精度に感謝します。私はReduxを使うことができますが、 'back'ハンドラのためだけに必要でしたので、全体を配線するのは過度のようでした。私は選択肢がないと思う.. – Kerumen

関連する問題