【问题标题】:Menu Button To Left Of Stack Navigator Back Button, headerBackVisible: true not working堆栈导航器后退按钮左侧的菜单按钮,headerBackVisible:true 不起作用
【发布时间】:2021-10-26 12:49:59
【问题描述】:

我正在使用嵌套在抽屉导航器中的堆栈导航器,用于使用反应导航 6 的反应原生应用程序。我只显示堆栈导航器的标题。我想在标题的最左侧放置一个汉堡菜单按钮,但我还希望出现默认的堆栈导航返回按钮。

我在文档中找到了设置 headerBackVisible,但找不到任何人使用它的示例,所以我不确定我是否正确使用它。我试图在我的屏幕选项中将它作为 headerBackVisible: true 传递。无论我做什么,如果我在 headerLeft 中添加任何其他内容,我都无法显示标题返回按钮。

有人对如何在页眉后退按钮左侧有任何建议或示例吗?

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    是的,headerBackVisible 不能与 headerLeft 一起使用。作为一种解决方法,您可以从 @react-navigation/stack 导入默认后退按钮 (HeaderBackButton) 并将其与您的汉堡包组件一起返回。像这样的:

    import { createStackNavigator, HeaderBackButton } from '@react-navigation/stack';
    
      <Stack.Navigator
        screenOptions={({ navigation, route }) => ({
          headerLeft: (props) => {
            return (
              <>
                <Text>Menu</Text> // Replace with your hamburger component
                {props.canGoBack && <HeaderBackButton {...props} />}  // THIS IS WHAT YOU NEED
              </>
            );
          },
        })}> ....
        <Stack.Screen ... />
        <Stack.Screen ... />
      </Stack.Navigator>
    

    小吃链接:https://snack.expo.dev/@rabiarashid/react-navigation---stack-navigator-example

    更新(针对 react-navigation v6):

    在 v6 中,HeaderBackButton 被移至元素库,即

    import { HeaderBackButton } from '@react-navigation/elements';
    

    参考:https://reactnavigation.org/docs/upgrading-from-5.x/#some-exports-are-now-moved-to-the-element-library

    【讨论】:

    • 谢谢你!!!不幸的是,我遇到了这个错误,我无法克服它。我尝试清除所有缓存并重新安装所有依赖项,但仍然无法通过它。错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。检查Header的渲染方法。
    • 我的代码顶部有以下内容 import { createStackNavigator, HeaderBackButton } from '@react-navigation/stack';
    • 请分享您的代码 sn-p 或更好地分享小吃链接
    • 我忘了说我正在使用 Expo,不确定这是否重要。我尝试创建一个新的世博会项目并从小吃复制/粘贴您的代码,它给了我完全相同的错误。我正在使用反应导航 6,也许这是一个错误/问题?我从您的零食中看到您使用的是第 5 版。
    • 哦,是的,我使用的是 v5。在 v6 中,HeaderBackButton 被移至元素库,即 import { HeaderBackButton } from '@react-navigation/elements';我也更新了零食
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    相关资源
    最近更新 更多