2017-07-26 18 views
0

私はTabNavigatorをスタックナビゲータにネストしました。ログインページでは、TabNavigatorにナビゲートしてスタックをリセットし、いくつかのパラメータをTabNavigatorに渡したいと思っています。ネストされたTabNavigatorはルートにパラメータを渡しません

ドキュメントに記載されているとおり、私はスタックをリセットして、userパラメータをナビゲータに渡します。

resetAction =() => { 
 
    return NavigationActions.reset({ 
 
     index:0, 
 
     actions: [NavigationActions.navigate({routeName:'TabNav', params:{user: userId}})] 
 
    }) 
 
    }

私の問題は、私はTabNavigatorコンテナルートでのparamsにアクセスできないことです。私はthis.props.navigation.state.paramsまたはthis.props.navigation.paramsを使ってみましたが、どれもうまくいかないようです。

マイTabNavigatorコンテナコード:

const TabNav = TabNavigator({ 
 
    Page1:{screen: Page1}, 
 
    Page2: {screen: Page2}, 
 
    Page3: {screen: Page3} 
 
})

答えて

0

私は以下見られるようなクラスベースのコンポーネントにTabNav成分を変更することによってそれを解決することができた:

export default class Dashboard extends React.Component { 
 
    
 
    router = const TabNav = TabNavigator({ 
 
    Page1:{screen: Page1}, 
 
    Page2: {screen: Page2}, 
 
    Page3: {screen: Page3} 
 
    }) 
 

 
    render(){ 
 
    return <TabNav screenProps={{userId: this.props.navigation.state.params.userId}}/> 
 
    } 
 
}

通常、NavigationActions.navigate({routeName:'TabNav', params:{userId}}などのパラメータを渡し、screenPropsプロパティのルートでuserIdパラメータにアクセスできます。this.props.screenProps.userId

+0

ルーター変数は何ですか? –

関連する問題