2017-08-06 14 views
2

条件付きホームスクリーンを作成しようとしています。ユーザーに電話に「UserID」が保存されている場合は、「場所スクリーン」に移動します。 LoginScreen "を選択します。私はReduxでStackNavigationを使用しており、反応ネイティブの学習には約2週間です。条件付きホームスクリーンがStackNavigationで反応するネイティブエクスポ

function nav (state = firstState(), action) { 
    let nextState; 
    switch (action.type) { 

    case 'Home': 
     nextState = AppNavigator.router.getStateForAction(
     NavigationActions.navigate({routeName: 'Home'}), 
     state 
    ); 
     return nextState; 
     break; 

    case NavActionTypes.NAVIGATE_PLACES: 
     nextState = AppNavigator.router.getStateForAction(
     NavigationActions.navigate({ routeName: 'Places' }), 
     state 
     ); 
     return nextState; 
     break; 
} 

...など 私は天候やないIDは、携帯電話に保存されているに依存するように減速して初期状態を設定します。私は、ネイティブとコーディングの一般的な、私は19に反応するために非常に新しいので、どんな助けも大歓迎です!助けを求めるコードがさらに必要な場合は、私に知らせてください。私はgithubのリンクを送信します。 ありがとうございます! Cooper

答えて

1

還元剤を純粋に保つことを推奨しているので、ナビゲーションロジックをレデューサーから出してコンポーネントに入れます。 また、状態にUserIDが含まれている場合、コンポーネントがマウントされ、ナビゲーション状態をPlacesScreenにリセットする際にLoginScreenの状態を確認することをお勧めします。

import store from '../storeLocation' 
export class LoginScreen extends React.Component { 

    ... 

    componentWillMount(){ 
    if(store.getState().userID !== "") 
     this.props.navigation.dispatch(NavigationActions.reset({ 
     index: 0, 
     actions: [ 
      NavigationActions.navigate({ routeName: 'Places'}) 
     ] 
     })); 
    } 

    ... 

} 
+0

ありがとうございます! –

関連する問題