2017-07-26 69 views
0

我有一個嵌套在Stack Navigator中的TabNavigator。在登錄頁面中,我想導航到TabNavigator,重置堆棧並將一些參數傳遞給TabNavigator。嵌套的TabNavigator沒有傳遞參數給路由

正如文檔中所述,我正在執行以下操作來重置堆棧,並將user參數傳遞給導航器。

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

我的問題是,我無法訪問PARAMS在TabNavigator的路線。我嘗試使用this.props.navigation.state.paramsthis.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}}/> 
 
    } 
 
}

這樣做,我能夠正常通過params,如NavigationActions.navigate({routeName:'TabNav', params:{userId}}和訪問在screenProps屬性中的路由userId參數this.props.screenProps.userId

+0

什麼是路由器變量? –