React Native:React Navigation StackNavigator 不工作。得到错误:“未定义不是一个对象(评估'this.props.navigation.navigate')”

IT技术 javascript reactjs react-native undefined react-navigation
2021-05-03 14:57:52

我正在尝试使用 React Navigation 和 StackNavigator 来浏览我的应用程序。

我有一个带有 的按钮onPress={() => navigate('DetailsScreen'),我希望它可以带我到DetailsScreen,但出现以下错误:

E ReactNativeJS:undefined 不是一个对象(评估'this.props.navigation.navigate')

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

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

1个回答

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

使用父级

从你的父组件传递导航props(如果它是一个屏幕)。

<Card navigation={navigation} />

这是最简单的解决方案。

使用高阶组件 withNavigation

如果父组件不支持导航,或者传递 props 太复杂,您可以使用 HOC withNavigation

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

然后,您将拥有navigation可用props。