【问题标题】:How to achieve 'goBack' in React-Navigation/Drawer 6如何在 React-Navigation/Drawer 6 中实现“goBack”
【发布时间】:2021-11-17 19:43:21
【问题描述】:

我在 React-navigation/drawer 6 中实现“goBack”功能时遇到问题(“@react-navigation/drawer”:“^6.1.4”,准确地说)。

我能够在 react-navigation/drawer 5 中使用以下代码完美地实现它:

<Drawer.Navigator>
    <Drawer.Screen 
        ....
        options={{
          header: ({ scene }) => {
            const { options } = scene.descriptor;
            const title = options.headerTitle;
              return (
                <MyHeader 
                  title={title}
                  iconName={"menu"} 
                  goback={
                    ()=>scene.descriptor.navigation.goBack()}
                />
              );
          },
        }}
      />
</Drawer.Navigator>

react-navigation/drawer 6 的相同修改代码(如下所示)将带我回到初始屏幕(而不是上一个屏幕)。它还会给出警告和错误消息。

<Drawer.Navigator>
    <Drawer.Screen 
        ....
        options={{
          header: ({ navigation, route, options }) => {
              const title = getHeaderTitle(options, route.name);
              return (
                <MyHeader 
                  title={title}
                  iconName={"menu"} 
                  goback={
                    ()=>navigation.goBack()}
                />
              );
          },
        }}
      />
</Drawer.Navigator>

请问,我怎样才能在 react-navigation/drawer 6 中实现这个“goBack”?

【问题讨论】:

    标签: react-native navigation react-navigation navigation-drawer react-native-navigation


    【解决方案1】:

    您需要指定backBehavior

    <Drawer.Navigator backBehavior="history">
    

    升级时请阅读升级指南,其中记录了这些更改:https://reactnavigation.org/docs/upgrading-from-5.x/#the-default-value-for-backbehavior-is-now-firstroute-for-tabs-and-drawer

    【讨论】:

    • 谢谢萨蒂亚。有效!我并没有真正关注文档。
    • 在解决这个问题 3 到 4 天之后,终于这个简单的事情对我有用。
    猜你喜欢
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多