我正在使用反应原生导航(react-navigation)StackNavigator。它从登录页面开始,贯穿应用程序的整个生命周期。我不想有返回选项,返回登录屏幕。有谁知道登录屏幕后如何将其隐藏在屏幕上?顺便说一句,我还使用以下方法将其隐藏在登录屏幕中:
const MainStack = StackNavigator({
Login: {
screen: Login,
navigationOptions: {
title: "Login",
header: {
visible: false,
},
},
},
// ... other screens here
})
原文由 EyalS 发布,翻译遵循 CC BY-SA 4.0 许可协议
1)使后退按钮在反应导航中消失
v5 或更新版本:
注意: v6 有一个额外的选项:
headerBackVisible: false
https://reactnavigation.org/docs/native-stack-navigator/#headerbackvisible
v2-v4:
2)如果要清理导航堆栈:
假设您在要从中导航的屏幕上:
如果您使用 react-navigation v5 或更新版本,您可以使用
navigation.reset
或CommonActions.reset
:来源和更多信息: https ://reactnavigation.org/docs/navigation-prop/#reset
或者:
来源和更多信息: https ://reactnavigation.org/docs/navigation-actions/#reset
对于旧版本的 react-navigation:
v2-v4 使用
StackActions.reset(...)
v1 使用
NavigationActions.reset
3) 对于 android,您还必须使用 BackHandler 禁用硬件后退按钮:
http://reactnative.dev/docs/backhandler.html
或者如果你想使用钩子:
https://github.com/react-native-community/hooks#usebackhandler
否则,如果导航堆栈为空,则应用程序将在按下 android 硬件后退按钮时关闭。
其他来源:感谢在下面添加评论并帮助更新 v5 的答案的用户。