React Native后退按钮没有问题

时间:2019-07-23 20:29:19

标签: reactjs react-native

我有此代码

      <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>

当我按下它时它应该回到上一页,但出现此错误 enter image description here

这是项目零食的链接 https://snack.expo.io/@ov3rcontrol/navi

1 个答案:

答案 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},以便您的道具名称保持一致,并避免在通过导航对象时造成混乱。

编辑/注意: 这将纠正错误;它可能无法解决您想要的导航。