2017-10-18 201 views
0

您好,我是新来的本土和尝试学习一些东西。我试图通过点击一个按钮上的用户名到子视图。这是我对按钮的代码在视图中单击一个反应原生传递参数到其他组件

this.props.navigation.navigate('GetRegisteredScreen', {}, { 
    type: ' Navigate', 
    routeName: 'GetRegisteredScreen', 
    params: {username: 'Robert'} 
}) 

视图B

componentDidMount(){ 
    alert(this.props.navigation.state.params.username) 
} 

获得以下错误

未定义在params.username

我是什么做错了?

可有一个人请帮助,在此先感谢

编辑:这里是什么,我得到了this.props.navigation

enter image description here

+0

您能得到什么,如果你犯了一个'的console.log(this.props.navigation)'? –

+0

我测试了你的代码,它工作正常。但我已经改变了'导航'而不是'导航'。没有空间。 –

+0

当我尝试打印出console.log(this.props.navigation.state.params.username)时,仍然收到'undefined'。 – dogwasstar

回答

0

我猜你的导航仪,从PARAMS注入的属性到下一个组件的道具,所以只是使用

this.props.username 
+0

我已检查,但它仍然无法正常工作。你能告诉我一个示例代码吗? – dogwasstar

0

你有一个语法错误。你传错了。它应该如下所示。

this.props.navigation.navigate({ 
    routeName: 'GetRegisteredScreen', 
    username: 'Robert' 
}); 
// OR 
this.props.navigation.navigate('GetRegisteredScreen', { 
    username: 'Robert' 
});  

您使用的语法是dispatching navigate action

const navigateAction = NavigationActions.navigate({ 
    routeName: 'Profile', 
    params: {}, 
    action: NavigationActions.navigate({ routeName: 'SubProfileRoute'}) 
}) 

this.props.navigation.dispatch(navigateAction)