如何在根反应导航器之外获取反应导航器状态?

问题描述 投票:0回答:1

这是东西:我在移动设备上有一个本机应用程序,当用户离开我的应用程序并返回时,我正在尝试执行一些权限检查操作。我想避免在登录屏幕上进行权限检查,并考虑现有的应用程序组件树,所以我想获取当前的路由供我使用。现在,我正在使用5.x版本react-navigation。


const App = () => {
  useEffect(() => {
    const handleAppStateChange = (): void => {
      // Authority check action
    };
    AppState.addEventListener('change', handleAppStateChange);
  }, []);

  return (
    <Provider store={store}>
      <SafeAreaProvider>
        <SafeAreaView>
          <RootNavigator />
          <OverlayActivityIndicator />
          <ActionSheet />
        </SafeAreaView>
      </SafeAreaProvider>
    </Provider>
  );
}

现在我遇到了问题:我不知道如何在根导航器之外获取当前路线。

我的最后选择是将当前路由集成到redux存储中,这将使我的应用程序更加复杂。

还有其他想法吗?

javascript reactjs react-native mobile react-navigation
1个回答
0
投票

You can refer this for getting navigation outside components

import { NavigationContainer } from '@react-navigation/native';
import { navigationRef } from './RootNavigation';

export default function App() {
  return (
    <NavigationContainer ref={navigationRef}>{/* ... */}</NavigationContainer>
  );
}


//whereas 
import * as React from 'react';

export const navigationRef = React.createRef();

export function navigate(name, params) {
  navigationRef.current?.navigate(name, params);
}
© www.soinside.com 2019 - 2024. All rights reserved.