开发者问题收集

React Native - 未定义不是一个对象(评估'this.props.navigation.navigate')

2018-05-12
381

其实我是 RN 的新手, 我遇到了一个问题,我到处都研究过了,但一无所获!

当我尝试从一个屏幕导航到另一个屏幕时,出现了这个错误 “undefined 不是对象(评估‘this.props.navigation.navigate’)”

这是我的组件和整个项目: https://github.com/saidziani/News/blob/other-articles/components/Rowstd.js

2个回答

您必须将 this.props.navigation 从父级传递到组件,然后才能使用它。

就您而言,我认为您应该将 this.props.navigation 从 Home.js 传递到 Rowstd,如下所示:

<Rowstd article={row} index={parseInt(i, 10)} navigation={this.props.navigation} />
Ali SabziNezhad
2018-05-12

您不需要手动将 navigation 属性传递给每个组件。

只需确保您已将 <Rowstd /> 组件添加到路由堆栈即可。

如果您尚未执行此操作,则 navigation 属性将不可用。

this.props.navigation : the navigation prop is passed in to every screen component (definition) in stack navigator

如果您想从非路由屏幕(例如中间件)访问它(如果您使用 redux ),那么您必须创建一个 NavigationService

更多详细信息请点击此处 - 无需导航属性即可导航

WitVault
2018-05-12