将本机传递参数反应给其他组件

Posted

技术标签:

【中文标题】将本机传递参数反应给其他组件【英文标题】:react native passing params to other component 【发布时间】:2018-03-30 22:20:02 【问题描述】:

您好,我是新来的本地人,并试图学习一些东西。我正在尝试将按钮单击上的用户名传递给子视图。这是我在按钮单击视图 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

【问题讨论】:

如果你创建console.log(this.props.navigation),你会得到什么? 我已经测试了你的代码,它运行良好。但我更改了'Navigate' 而不是' Navigate'。没有空格。 当我尝试打印 console.log(this.props.navigation.state.params.username) 时,我仍然得到“未定义”。 【参考方案1】:

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

this.props.username

【讨论】:

我已经检查过了,但它仍然无法正常工作。你能给我看一个示例代码吗?【参考方案2】:

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

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)

【讨论】:

以上是关于将本机传递参数反应给其他组件的主要内容,如果未能解决你的问题,请参考以下文章

如何传递多个值以响应本机上下文 API

ReactJS:从 rails 传递参数以将路由器反应到组件

在React本机页面之间传递数据

如何将任意命令行参数从 MinGW shell 传递给本机 Windows 程序?

如何传递“参数”来反应组件

如何将值传递给正在加载反应本机应用程序的 Web 视图