堆栈导航器后退按钮左侧的菜单按钮,headerBackVisible:true 不工作
Menu Button To Left Of Stack Navigator Back Button, headerBackVisible: true not working
我正在使用嵌套在抽屉导航器中的堆栈导航器,用于使用反应导航 6 的反应本机应用程序。我只显示堆栈导航器的 header。我想在 header 的最左侧放置一个汉堡菜单按钮,但我还希望显示默认的堆栈导航后退按钮。
我在文档中找到了 headerBackVisible 设置,但找不到任何人使用它的示例,所以我不确定我是否正确使用它。我试图在我的屏幕选项中将其作为 headerBackVisible: true 传递。无论我做什么,如果我在 headerLeft 中放置任何其他内容,我都无法显示 header 后退按钮。
有人对如何在 header 后退按钮的左侧放置内容有任何建议或示例吗?
是的,headerBackVisible
不适用于 headerLeft
。作为解决方法,您可以从 @react-navigation/stack 和 return 中导入默认后退按钮 (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>
小吃link:https://snack.expo.dev/@rabiarashid/react-navigation---stack-navigator-example
更新(针对 react-navigation v6):
在 v6 中,HeaderBackButton 被移动到元素库中,即
import { HeaderBackButton } from '@react-navigation/elements';
我正在使用嵌套在抽屉导航器中的堆栈导航器,用于使用反应导航 6 的反应本机应用程序。我只显示堆栈导航器的 header。我想在 header 的最左侧放置一个汉堡菜单按钮,但我还希望显示默认的堆栈导航后退按钮。
我在文档中找到了 headerBackVisible 设置,但找不到任何人使用它的示例,所以我不确定我是否正确使用它。我试图在我的屏幕选项中将其作为 headerBackVisible: true 传递。无论我做什么,如果我在 headerLeft 中放置任何其他内容,我都无法显示 header 后退按钮。
有人对如何在 header 后退按钮的左侧放置内容有任何建议或示例吗?
是的,headerBackVisible
不适用于 headerLeft
。作为解决方法,您可以从 @react-navigation/stack 和 return 中导入默认后退按钮 (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>
小吃link:https://snack.expo.dev/@rabiarashid/react-navigation---stack-navigator-example
更新(针对 react-navigation v6):
在 v6 中,HeaderBackButton 被移动到元素库中,即
import { HeaderBackButton } from '@react-navigation/elements';