【问题标题】:React native wix/react-native-navigation反应原生 wix/react-native-navigation
【发布时间】:2018-02-09 16:52:31
【问题描述】:

this navigation library 有一些问题。
我看到所有组件都是独立的,但我需要在所有屏幕上都有 HOC。
例如,如果我没有连接,我只想显示一个屏幕,如果连接可用 - 显示当前基于选项卡的应用程序

我该怎么做?

感谢您的任何想法。

注册组件代码

const registerScreens = (appType, store) => {
  switch (appType) {
    case appTypes.ROOT_APP: {
      Navigation.registerComponent(screens.APP, () => App, store, ApolloProvider, { client });
      break;
    }
    case appTypes.SINGLE_BASED_APP:
      Navigation.registerComponent(screens.ONBOARDING, () => OnboardingContainer, store, ApolloProvider, { client });
      break;
    case appTypes.TAB_BASED_APP:
      // App Screens
      Navigation.registerComponent(screens.DISCOVER, () => DiscoverContainer, store, ApolloProvider, { client });
      break;
    default:
      throw new Error('appType is not defined.');
  }
};

【问题讨论】:

    标签: react-native wix-react-native-navigation


    【解决方案1】:

    您需要 React native 中的 NetInfo API 来检查连接状态。并使用 react-native-navigation 的 Navigation 移动到正确的屏幕 - 单屏应用或基于选项卡的应用。

    NetInfo.getConnectionInfo().then((connectionInfo) => {
      if (connectionInfo.type === 'none') {
        Navigation.startSingleScreenApp(params);
      } else {
        Navigation.startTabBasedApp(params);
      }
    });
    

    【讨论】:

    • 感谢您的大力帮助!但是如果我将进入后台模式然后恢复我的应用程序但没有连接怎么办?可能我应该用 HOC 包装我的所有组件并监听更改吧?
    • 您可以观察 AppState 的变化,并在该回调中调用上述启动代码。
    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 2022-01-16
    • 1970-01-01
    • 2021-01-29
    • 2018-12-03
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多