反应原生导航调度不重置堆栈

时间:2021-03-09 15:59:14

标签: android react-native react-native-navigation

我有一个这样的导航容器

<NavigationContainer ref={navigationRef}></NavigationContainer>

我正在尝试像这样重置堆栈,这是重置为第一条路线,而不是第二条

navigationRef.current?.dispatch(CommonActions.reset(
        {
            index: 1,
            routes: [{
                name: Route.TASK_NAVIGATOR,
                state: {
                    routes: [{
                        name: Route.TASK_LIST_TAB_NAVIGATOR
                    }]
                }
            }, {
                name: Route.TASK_NAVIGATOR,
                state: {
                    routes: [{
                        name: Route.TASK_CRUD_TAB_NAVIGATOR,
                        params: { mode: CrudMode.VIEW, task }
                    }]
                }
            }]
        }))

如果我使用索引 0 并像这样使用它,它就可以工作

navigationRef.current?.dispatch(CommonActions.reset(
        {
            index: 0,
            routes: [{
                name: Route.TASK_NAVIGATOR,
                state: {
                    routes: [{
                        name: Route.TASK_CRUD_TAB_NAVIGATOR,
                        params: { mode: CrudMode.VIEW, task }
                    }]
                }
            }]
        }))

我需要的是重置到第二个堆栈并保持第一个,因此android后退按钮可以向后导航,标题中的后退箭头也可以,但由于某种原因这些都不起作用。

如果我这样使用它,它也不会工作,它会转到那个屏幕,但没有后退箭头,我的第一个选项卡只有该屏幕可用,直到应用程序重新启动。

navigationRef.current?.navigate(Route.TASK_NAVIGATOR, {
        screen: Route.TASK_CRUD_TAB_NAVIGATOR,
        params: { mode: CrudMode.VIEW, task }
    })

0 个答案:

没有答案