当您单击“后退”按钮时,应用程序将返回登录屏幕。我需要它来简单地关闭应用程序。用户打开登录屏幕进行登录。登录后,他将无法再返回登录屏幕。当您单击后退按钮时,它必须退出应用程序。
我已经在网上搜索了一个解决方案,但没有找到。我找到了一种清除堆栈的方法,但是仅当路由在StackNavigator内部时,该方法才有效。就我而言,该路线位于DrawerNavigator内部。
我的配置
const Drawer = DrawerNavigator(
{
Login: { screen: Login, navigationOptions:({navigation})=>({ drawerLockMode:"locked-closed" })},
ListCliente: { screen: ListCliente },
Sincronizacao: { screen: Sincronizacao },
},
{
initialRouteName: "Login",
contentOptions: {
activeTintColor: "#e91e63"
},
contentComponent: props => <SideBar {...props} />
}
);
const AppNavigator = StackNavigator(
{
Drawer: { screen: Drawer },
FormCliente: { screen: FormCliente },
ListAtendimento: { screen: ListAtendimento },
FormAtendimento: { screen: FormAtendimento },
},
{
initialRouteName: "Drawer",
headerMode: "none"
}
);
可能的解决方案。但是,仅当路由在StackNavigator内部时才有效。而且CustomerClient路由位于DrawerNavigator内部。
import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'listCliente' })],
});
this.props.navigation.dispatch(resetAction);
总结。单击返回按钮时,我需要退出登录屏幕并转到“客户列表”屏幕,而不是返回登录屏幕。有人知道他们是否具有此功能吗?
答案 0 :(得分:0)
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({
routeName: "MainScreen"
})
]
});
this.props.navigation.dispatch(resetAction);
尝试此代码段。会的。