实际上我是 RN 的新手,我有一个问题,我到处研究但一无所获!
当我尝试从一个屏幕导航到另一个“未定义不是对象(评估'this.props.navigation.navigate')”时出现此错误
这是我的组件和整个项目:https ://github.com/saidziani/News/blob/other-articles/components/Rowstd.js
实际上我是 RN 的新手,我有一个问题,我到处研究但一无所获!
当我尝试从一个屏幕导航到另一个“未定义不是对象(评估'this.props.navigation.navigate')”时出现此错误
这是我的组件和整个项目:https ://github.com/saidziani/News/blob/other-articles/components/Rowstd.js
您必须将 this.props.navigation 从父级传递给组件,然后才能使用它。
在您的情况下,我认为您应该将 this.props.navigation 从 Home.js 传递给 Rowstd,如下所示:
<Rowstd article={row} index={parseInt(i, 10)} navigation={this.props.navigation} />
您不需要navigation
手动将 prop 传递给每个组件。
只需确保您已将<Rowstd />
组件添加到您的路由堆栈。
navigation
如果您没有这样做,prop 将不可用。
this.props.navigation
:导航道具被传递到堆栈导航器中的每个屏幕组件(定义)
如果您想从非路由屏幕访问它,例如中间件(如果您正在使用redux
),那么您必须创建一个NavigationService
.
更多细节在这里 -没有导航道具的导航