React Native - undefined 不是对象(评估 'this.props.navigation.navigate')
React Native - undefined is not an object (evaluating 'this.props.navigation.navigate')
其实我是RN的新手,
我有一个问题,我到处研究但一无所获!
当我尝试从一个屏幕导航到另一个屏幕时出现此错误 "undefined is not an object (evaluating '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
属性手动传递给每个组件。
只需确保您已将 <Rowstd />
组件添加到路由堆栈。
navigation
如果您没有这样做,道具将不可用。
this.props.navigation
: the navigation prop is passed in to every screen component (definition) in stack navigator
如果你想从非路由屏幕访问它,例如中间件(如果你正在使用 redux
),那么你必须创建一个 NavigationService
.
此处有更多详细信息 - Navigating without navigation prop
其实我是RN的新手, 我有一个问题,我到处研究但一无所获!
当我尝试从一个屏幕导航到另一个屏幕时出现此错误 "undefined is not an object (evaluating '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
属性手动传递给每个组件。
只需确保您已将 <Rowstd />
组件添加到路由堆栈。
navigation
如果您没有这样做,道具将不可用。
this.props.navigation
: the navigation prop is passed in to every screen component (definition) in stack navigator
如果你想从非路由屏幕访问它,例如中间件(如果你正在使用 redux
),那么你必须创建一个 NavigationService
.
此处有更多详细信息 - Navigating without navigation prop