在选项卡更改时反应导航 [英] React Navigation on tab change

查看:39
本文介绍了在选项卡更改时反应导航的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在不使用 Redux 的情况下,如何使用 React 导航选项卡导航器检测选项卡更改?

Without using Redux, how do I detect a tab change with a react navigation tab navigator?

我知道我需要以某种方式使用 onNavigationStateChange 但我不知道如何更新当前视图.

I know I need to somehow use onNavigationStateChange but I can't figure out how to update the current view.

export default () => <MyTabNav
    ref={(ref) => { this.nav = ref; }}
    onNavigationStateChange={(prevState, currentState) => {
        //call function on current view
    }}
/>;

推荐答案

export default () => <MyTabNav
    ref={(ref) => { this.nav = ref; }}
    onNavigationStateChange={(prevState, currentState) => {
       const getCurrentRouteName = (navigationState) => {
         if (!navigationState) return null;
         const route = navigationState.routes[navigationState.index];
         if (route.routes) return getCurrentRouteName(route);
         return route.routeName;
       };
    global.currentRoute = getCurrentRouteName(currentState);
  }}
/>;

如果您不想使用 redux,这就是您可以存储有关当前路由的全局信息的方式,这样您既可以检测选项卡更改,也可以判断哪个选项卡现在处于活动状态.

If you don't want to use redux, this is how you can store global information about the current route, so you can both detect a tab change and also tell which tab is now active.

这篇关于在选项卡更改时反应导航的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆