将原生的params反应给其他组件

时间:2017-10-18 22:47:52

标签: react-native components react-navigation

嗨,我是新手,对原生做出反应并尝试学习一些东西。我试图在按钮单击子视图上传递用户名。这是我在按钮上单击视图A

的代码
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

2 个答案:

答案 0 :(得分:0)

我猜你的导航器将params的属性注入到下一个组件的道具中,所以只需使用

this.props.username

答案 1 :(得分: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)