加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – React Navigation TabNavigator:重置选项卡更改上的

发布时间:2020-12-15 05:04:21 所属栏目:百科 来源:网络整理
导读:我有以下路线结构: StackNavigator-StackNavigator-TabNavigator--Tab1---Route 1 (Stack) (initial)---Route 2 (Stack)--Tab2---Route 3 (Stack) (initial)---Route 4 (Stack) 当我访问Tab1 – 路线1 – 路线2 – Tab2并返回Tab1,活动路径为2而不是initial
我有以下路线结构:
StackNavigator
-StackNavigator
-TabNavigator
--Tab1
---Route 1 (Stack) (initial)
---Route 2 (Stack)

--Tab2
---Route 3 (Stack) (initial)
---Route 4 (Stack)

当我访问Tab1 – >路线1 – >路线2 – > Tab2并返回Tab1,活动路径为2而不是initialRoute 1.

我正在做以下事情:

tabBarOnPress: ({ scene }) => {
    const { route } = scene;
    const tabRoute = route.routeName;
    const { routeName } = route.routes[0];

    navigation.dispatch(NavigationActions.navigate({ routeName: tabRoute }));

    navigation.dispatch(NavigationActions.reset({
        index: 0,actions: [
            NavigationActions.navigate({ routeName }),],}));
},

但问题是它首先显示路线2,然后导航到路线1.

如何重置之前的选项卡/屏幕,因此当我切换选项卡时,总是直接显示初始路径.

问题是当我重置路由时,我需要传递先前routeName的导航操作(离开选项卡)并为下一个路由分派新的导航操作:
tabBarOnPress: ({ previousScene,scene }) => {
    const tabRoute = scene.route.routeName;
    const prevRouteName = previousScene.routes[0].routeName;

    navigation.dispatch(NavigationActions.reset({
        index: 0,actions: [
            NavigationActions.navigate({
                routeName: prevRouteName
            }),}));

    navigation.dispatch(NavigationActions.navigate({
        routeName: tabRoute
    }));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读