我一直在努力使用react-native
和导航器react-navigation
我的导航器看起来像这样
AuthNavigator (StackNavigator)
----DrawerNavigator (DrawerNavigator)
----TabsNavigator (TabNavigator)
----Tab1Navigator (StackNavigator)
----Tab2Navigator (StackNavigator)
----Tab3Navigator (StackNavigator)
----Tab4Navigator (StackNavigator)
(这是否足够清楚?)
我的退出按钮位于Tab4Navigator
的屏幕中,我确实需要返回AuthNavigator
而我无法弄清楚...
我一直在考虑使用像react-native-restart这样的软件包,但我觉得这不是真的'干净'......
提前致谢
答案 0 :(得分:1)
我有一个类似的问题,唯一对我有用的解决方法是手动重置减速器的导航。
const nav = (state, action) => {
switch (action.type) {
case 'LOGOUT': {
return {
index: 0,
routes: [{key: 'Init', routeName: 'AuthNavigator'}]
};
}
default:
return AppNavigator.router.getStateForAction(action, state) || state;
}
};
LOGOUT
是您要注销时从Tab4Navigator
触发的自定义操作,AuthNavigator
是您要在用户注销时显示的屏幕路径。这假设您使用Redux来管理导航状态,如此处所述https://reactnavigation.org/docs/guides/redux。