我正在开发项目,使用redux的react-navigation . 问题是当我在DrawerNav(Home)上并且转到PatientRecordNavigation - >菜单时,但是当按下后退按钮时,动作不会从PatientRecordNavigation(菜单)返回到 - > Home,而是返回到ChooseAnimal,我不知道我想转到ChooseAnimal,但需要去Home(就像在browserhistory上一样,总是回到上一个导航) . 后面的按钮位于 Headers 上,具有调度功能到减速器
const DrawerNav = DrawerNavigator({
Home: {screen: Home},
Records: { screen: PatientRecordNavigation }
},
{
initialRouteName: "Home"
});
const PatientRecordNavigation = StackNavigator(
{
ChooseAnimal: { screen: ChooseAnimal },
Menu: { screen:Menu },
Reminders: { screen: Reminders }
},
{
initialRouteName: "ChooseAnimal",
headerMode: 'none'
});
导航减速机的一部分
case 'BACK':
nextState = AppNavigator.router.getStateForAction(NavigationActions.back(), state);
break;
请帮忙解决这个问题 . 谢谢
3 回答
尝试将
key
添加到NavigationActions.back()
,如here所述 . 您可以在导航状态下获取当前视图的键 . 如果这不起作用,请尝试传递{key: null}
.在减速机里面,有一个
Menu
的情况 . 配置后退按钮按下时按下Menu
的操作 .后退按钮配置
希望这可以帮助
我通过在reducer上添加类型来解决这个任意路径 . 当我来自Home - > Menu时,当我来自ChooseAnimal时,我会调用RECORD_HOME - >菜单,我称之为RECORD
因此,解决方案是使用导航重置,当我不回到ChooseAnimal时,我将更改(使用重置功能)initialRouteName
示例代码: