2017-12-19 2 views
0

私は現在自分のプロジェクトに悩まされています。ネストされたナビゲータがたくさんあり、ナビゲートする前にリセットする方法がわかりません。TabBarルートを押した後にスタックをリセット

は、ここに私のナビゲーター構造です:

  • MainNavigator
    • TabBarNavigator
      • StackNavigator A
        • 画面A(画面Xは同じである) - > Xの画面に移動
        • 画面B
      • StackNavigator B
        • 画面C - > X
        • 画面にナビゲート画面D
      • StackNavigator C
        • 画面E - > X
        • を画面に移動
        • 画面F
      • StackNavigator D
    • 他の成分

iは画面Aから画面Xに移動だときに、私はまだ他のナビゲーター(B、C、D)に移動することができtabBarはまだ存在し、それは良いですから。 しかし、ナビゲータAで画面Xを開いた後、ナビゲータBの画面にナビゲートすると、Navigator AIが現時点で画面Aに着陸し、画面Xに着陸しないようにします(画面XはそれでもNavigator Aのスタックの上にあります)。再開するに

は、私のNAVはactualy行います - ナビゲーターA - >画面A - >画面のX - >ナビゲータB - >画面B - >戻るナビゲーターAへ移動しますが、画面上の土地X

と私 - ナビゲータA - >画面A - >画面X - >ナビゲータB - >画面B - >ナビゲータAに戻り、画面Aに移動

私はこれを私の画面Xナビゲーションオプションですが、ナビゲータAでのみ機能します:

tabBarOnPress:() => { 
    navigation.goBack(navigation.state.key) 
    }, 

私は今これに執着しているので、何か助けていただければ幸いです。

が反応:16.0.0

はネイティブリアクト:https://github.com/expo/react-native/archive/sdk-23.0.0.tar.gz

は、ナビゲーションに反応:^ 1.0.0ベータ。あなたが見つけるreset方法の一例で

https://reactnavigation.org/docs/navigators/navigation-actions

import { NavigationActions } from 'react-navigation' 

const resetAction = NavigationActions.reset({ 
    index: 0, 
    actions: [ 
    NavigationActions.navigate({ routeName: 'Profile'}) 
    ] 
}) 

this.props.navigation.dispatch(resetAction) 
19 Reduxの統合により

現在のiOSシミュレータ上で作業

+0

をdicussedされますか?可能であれば、それを統合してルートを管理することができます:https://reactnavigation.org/docs/guides/redux –

+0

私はreduxを使用しますが、この見た目からここでどのように役立つか理解するのは苦労します「古典的な」ナビゲーション問題のように。 – Clonescody

答えて

0

あなたは NavigationActionsreset方法を使用することができます
0

タブの反応ナビゲーションネスティングでは少し複雑ですが、私は何かにも直面しましたkey値を与える。この

NavigationActions.reset({ 
    index: 0, 
    key: null, 
    actions: [ 
     NavigationActions.navigate({routeName: 'routeNameToNavigate'}) 
    ] 
}); 

にlarが私の問題を解決し、ネストされたから、私にルートをナビゲート。これがあなたの問題を解決することを願っています。ここでの問題は、あなたが今までReduxのを使用しました

https://github.com/react-community/react-navigation/issues/1949

関連する問題