2017-07-26 59 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

什么是路由器变量? –