gpt4 book ai didi

reactjs - 禁用 react 导航中的后退按钮

转载 作者:行者123 更新时间:2023-12-03 12:54:32 24 4
gpt4 key购买 nike

我正在使用 react native 导航(react-navigation)StackNavigator。它从登录页面开始贯穿应用程序的整个生命周期。我不想有返回选项,返回到登录屏幕。有谁知道如何在登录屏幕后将其隐藏在屏幕上?顺便说一句,我还使用以下方法将其隐藏在登录屏幕中:

const MainStack = StackNavigator({
Login: {
screen: Login,
navigationOptions: {
title: "Login",
header: {
visible: false,
},
},
},
// ... other screens here
})

最佳答案

1) 使后退按钮在 react 导航中消失

v5 或更高版本:

{     
navigationOptions: {
title: 'MyScreen',
headerLeft: ()=> null,
// `headerLeft: undefined` should work too
// `headerLeft: null` should work but could trigger a TS error
}

注意:v6 有一个额外的选项:headerBackVisible: false

Whether the back button isvisible in the header. You can use it to show a back button alongsideheaderLeft if you have specified it.

https://reactnavigation.org/docs/native-stack-navigator/#headerbackvisible

v2-v4:

navigationOptions:  {
title: 'MyScreen',
headerLeft: null
}

2) 如果您想清理导航堆栈:

假设您位于要从中导航的屏幕上:

如果您使用的是react-navigation版本v5或更高版本,您可以使用navigation.resetCommonActions.reset:

 // Replace current navigation state with a new one,
// index value will be the current active route:

navigation.reset({
index: 0,
routes: [{ name: 'Profile' }],
});

来源和更多信息在这里:https://reactnavigation.org/docs/navigation-prop/#reset

或者:

navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Home' },
{
name: 'Profile',
params: { user: 'jane' },
},
],
})
);

来源和更多信息在这里:https://reactnavigation.org/docs/navigation-actions/#reset

对于旧版本的react-navigation:

v2-v4使用StackActions.reset(...)

import { StackActions, NavigationActions } from 'react-navigation';

const resetAction = StackActions.reset({
index: 0, // <-- currect active route from actions array
actions: [
NavigationActions.navigate({ routeName: 'myRouteWithDisabledBackFunctionality' }),
],
});

this.props.navigation.dispatch(resetAction);

v1使用NavigationActions.reset

3) 对于 Android,您还必须使用 BackHandler 禁用硬件后退按钮:

http://reactnative.dev/docs/backhandler.html

或者如果你想使用钩子(Hook):

https://github.com/react-native-community/hooks#usebackhandler

否则,如果导航堆栈为空,应用程序将在按下 Android 硬件后退按钮时关闭。

其他来源:感谢在下面添加评论并帮助更新 v5+ 答案的用户。

关于reactjs - 禁用 react 导航中的后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com