开发者问题收集

React Native:React Navigation StackNavigator 无法正常工作。出现错误:“undefined 不是对象(正在评估‘this.props.navigation.navigate’)”

2017-05-17
3115

我正在尝试使用 React Navigation 和 StackNavigator 在我的应用中导航。

我有一个按钮,上面有 onPress={() => navigation('DetailsS​​creen') ,我希望它会带我到 DetailsS​​creen ,但我收到以下错误:

E ReactNativeJS: undefined is not an object (evaluating 'this.props.navigation.navigate')

我需要添加什么才能使其正常工作?

在此处查看我的代码: https://gist.github.com/chapeljuice/bef4b0a4dedef2994c81f3634b81aa43

1个回答

您的组件不具备导航意识(它不是一个屏幕)。因此,这里有 2 个常见的解决方案:

使用父级

从父组件传递导航 prop(如果是屏幕)。

<Card navigation={navigation} />

这是最简单的解决方案。

使用高阶组件 withNavigation

如果父组件不具备导航意识,或者传递 props 太复杂,则可以使用 HOC withNavigation

export default withNavigation(connect(mapStateToProps)(Card))

然后,您将可以使用 navigation prop。

Kerumen
2017-05-17