Eya*_*alS 59 navigation reactjs react-native react-navigation
我正在使用反应原生导航(react-navigation)StackNavigator.它在应用程序的整个生命周期中从"登录"页面开始.我不想有后退选项,返回登录屏幕.有谁知道登录屏幕后它是如何隐藏在屏幕上的?顺便说一下,我还使用以下方法将其隐藏在登录屏幕中:
const MainStack = StackNavigator({
Login: {
screen: Login,
navigationOptions: {
title: "Login",
header: {
visible: false,
},
},
},
// ... other screens here
})
Run Code Online (Sandbox Code Playgroud)
Flo*_*bre 137
对于react-navigation版本v1> = 1.0.0-beta.9,要使后退按钮消失:
navigationOptions: {
title: 'MyScreen',
headerLeft: null
}
Run Code Online (Sandbox Code Playgroud)
如果你也想清理导航堆栈,你可以做这样的事情(假设你在你想要导航的屏幕上):
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);
Run Code Online (Sandbox Code Playgroud)
并使用一个函数导航到目标路由,该路由将禁用所有后台功能:
navigationOptions: {
title: 'MyScreen',
headerLeft: null
}
Run Code Online (Sandbox Code Playgroud)
然后StackActions.reset(...)
在您想要导航到目标路线时调用
对于react-navigation v2版本,您需要使用NavigationActions.reset而不是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);
Run Code Online (Sandbox Code Playgroud)
更多信息:https: //reactnavigation.org/docs/en/stack-actions.html
小智 22
如果你的反应导航 v6.x
options={{
title: "Detail Pembayaran",
headerTitleStyle:{
fontWeight:'bold',
},
headerBackVisible:false
}}
Run Code Online (Sandbox Code Playgroud)
参考:React文档
Ech*_*ho7 16
您可以使用隐藏后退按钮left:null,但对于Android设备,当用户按下后退按钮时,它仍然能够返回.您需要重置导航状态并隐藏按钮left:null
以下是重置导航状态的文档:https://reactnavigation.org/docs/navigators/navigation-actions#Reset
此解决方案适用于react-navigator 1.0.0-beta.7,但left:null不再适用于最新版本.
小智 14
我们需要设置假的gesturesEnabled一起headerLeft到null.因为我们也可以通过滑动屏幕来导航回来.
navigationOptions: {
title: 'Title',
headerLeft: null,
gesturesEnabled: false,
}
Run Code Online (Sandbox Code Playgroud)
对于反应导航 V6.0
<Stack.Screen
name={'Dashboard'}
component={Dashboard}
options={{
gestureEnabled: false,
headerShown: true,
headerLeft: () => <></>,
}}>
</Stack.Screen>
Run Code Online (Sandbox Code Playgroud)
使用React Native的BackHandler为我工作。只需在您的ComponentWillMount中添加以下行:
BackHandler.addEventListener('hardwareBackPress', function() {return true})
Run Code Online (Sandbox Code Playgroud)
它将在Android设备上禁用后退按钮。
我正在使用 v6,它对我有用:
<Stack.Screen
name="ApparelsHome"
component={ApparelsHome}
options={{
headerLeft: () => <></>,
}}
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60781 次 |
| 最近记录: |