React Native跨不同嵌套导航器页面跳转失败报错问题求助
问题原因与解决方法
你跳转失败是两个问题共同导致的:
- 嵌套导航跳转格式书写不规范
- 路由名称大小写不匹配
正确跳转代码
this.props.navigation.navigate("Details", { screen: "New Tweet" })
错误说明
- 你尝试的第一种写法
this.props.navigation.navigate("New Tweet")无法生效,原因是New Tweet是子导航器Detail的内部注册路由,根导航器的路由表中只有Logins、Main、Drawer、Details四个路由,直接跳转子导航器内部路由无法被识别。 - 第二种写法的问题出在
screen参数的取值,你写的是New tweet,但你在Detail导航器中注册的路由名是New Tweet,React Navigation的路由名称大小写完全敏感,拼写不一致会导致路由匹配失败。
额外补充
如果需要给New Tweet页面传递参数,可以增加params字段嵌套:
this.props.navigation.navigate("Details", { screen: "New Tweet", params: { // 此处填写需要传递的参数 prefillContent: "测试推文内容" } })
在New Tweet页面可以通过this.props.route.params获取传递的参数。
内容的提问来源于stack exchange,提问作者Maee
相关产品推荐
相关产品推荐

