2017-05-03 7 views
4

を反応させます。ログインに成功したら、actionTypes.TO_HOMEを使用してHomeに移動します。私は3つのタブ(フィード、提案、プロフィール)があります。 Inside Profileタブ私は、ナビゲーション履歴をリセットし、再度ログインする(これまでのところ良い)ログアウトボタンを押している。しかし、もう一度ログインしてHomeに行くと、1秒間の最初のタブが表示され、TabNavigatorの履歴がリセットされていないように見える最後のもの(Profile)に移動します。 TabNavigatorの履歴もリセットされるように特別なことをする必要がありますか?とTabNavigatorコンテナの履歴をリセットし、私は次のような構造を持っているナビゲーション

これは歴史をリセットし、ログイン画面に行くための私の減速である:

export const navReducer = (state = initialState, action = {}) => { 
    let nextState; 
    switch (action.type) { 
     case actionTypes.TO_LOGIN: 
      nextState = RootNav.router.getStateForAction(
       NavigationActions.reset({ 
        index: 0, 
        actions: [NavigationActions.navigate({ type: NavigationActions.NAVIGATE, routeName: actionTypes.TO_LOGIN })], 
        key: null 
       }), state); 
      break; 

     case actionTypes.TO_HOME: 
      nextState = RootNav.router.getStateForAction(
       NavigationActions.reset({ 
        index: 0, 
        actions: [NavigationActions.navigate({ type: NavigationActions.NAVIGATE, routeName: actionTypes.TO_HOME })], 
       }), state); 
      break; 

     default: 
      nextState = RootNav.router.getStateForAction(action, state); 
      break; 
    } 

    return nextState || state; 
}; 

答えて

0

あなたはそれが働いていないナビゲートアクション

+0

にインデックス0を置くことができます。効果は同じです。私はより多くの情報とコードで質問を更新しました。 – jazzdle

関連する問題