0

实际上我是 RN 的新手,我有一个问题,我到处研究但一无所获!

当我尝试从一个屏幕导航到另一个“未定义不是对象(评估'this.props.navigation.navigate')”时出现此错误

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

4

2 回答 2

1

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

在您的情况下,我认为您应该将 this.props.navigation 从 Home.js 传递给 Rowstd,如下所示:

<Rowstd article={row} index={parseInt(i, 10)} navigation={this.props.navigation} />
于 2018-05-12T12:17:27.233 回答
0

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

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

navigation如果您没有这样做,prop 将不可用。

this.props.navigation:导航道具被传递到堆栈导航器中的每个屏幕组件(定义)

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

更多细节在这里 -没有导航道具的导航

于 2018-05-12T13:07:48.887 回答