我有此代码
<View style={{ flexDirection: 'row' }}>
<TouchableOpacity onPress={() => this.props.navigation.goBack()}>
<Image
source={require('./image/drawer.png')}
style={{ width: 25, height: 25, marginLeft: 5 }}
/>
</TouchableOpacity>
</View>
这是项目零食的链接 https://snack.expo.io/@ov3rcontrol/navi
答案 0 :(得分:1)
查看您的快餐.expo项目,似乎在每个堆栈导航器中都有<NavigationDrawerStructure navigationProps={navigation} />
和<NavigateBack navigationProps={navigation} />
;您实际上是将navigation
对象作为名为navigationProps
的道具传递给这些组件。因此,当您尝试调用this.props.navigation.goBack()
时,它会正确抛出该错误,提示“未定义(即this.props.navigation)不是对象”,因为未定义!
如果将this.props.navigation.goBack()
更改为this.props.navigationProps.goBack()
,则将调用正确的道具名称。但是,我只是建议将navigationProps={navigation}
更改为navigation={navigation}
,以便您的道具名称保持一致,并避免在通过导航对象时造成混乱。
编辑/注意: 这将纠正错误;它可能无法解决您想要的导航。