永久违反:此导航器缺少导航道具。博览会上的错误

时间:2019-07-30 22:41:57

标签: react-native react-navigation expo

我的问题与this one相同,但是如果使用这样的商店提供商,我会遇到困难:

const AppNavigator = createSwitchNavigator(
   {
      Loading: MainLoadingScreen,
      App: MainNavigator,
      Auth: AuthStack,
      Signup: SignupStack
   },
   {
      initialRouteName: 'Loading',
   }
);



const App = () => {
  return (
    <Provider store={store}>
      <View style={styles.container}>
        <AppNavigator />
      </View>
    </Provider>
  );
};

export default App;

我收到此错误: 永久违反:此导航器缺少导航道具。在react-navigation 3中,您必须直接设置应用程序容器。更多信息:https://reactnavigation.org/docs/en/app-containers.html

此错误位于:

    in Navigator (at App.js:114)
    in RCTView (at View.js:45)
    in View (at App.js:113)
    in Provider (at App.js:112)
    in App (at withExpoRoot.js:20)
    in RootErrorBoundary (at withExpoRoot.js:19)
    in ExpoRootComponent (at renderApplication.js:35)
    in RCTView (at View.js:45)
    in View (at AppContainer.js:98)
    in RCTView (at View.js:45)
    in View (at AppContainer.js:115)
    in AppContainer (at renderApplication.js:34)
- node_modules\@react-navigation\core\lib\module\navigators\createNavigator.js:1:1637 in getDerivedStateFromProps
- node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:6896:46 in applyDerivedStateFromProps
- ... 20 more stack frames from framework internals

如何转换代码,以便可以使用此处显示的格式? :

  

const App = createAppContainer(AppNavigator)

2 个答案:

答案 0 :(得分:1)

createAppContainer包装您的开关导航器:

const MainSwitch = createSwitchNavigator(
   {
      Loading: MainLoadingScreen,
      App: MainNavigator,
      Auth: AuthStack,
      Signup: SignupStack
   },
   {
      initialRouteName: 'Loading',
   }
);

const AppNavigator = createAppContainer(MainSwitch)

export default App = () => {
  return (
    <Provider store={store}>
      <View style={styles.container}>
        <AppNavigator />
      </View>
    </Provider>
  );
};

答案 1 :(得分:0)

使其具有功能并将其分配给Const的值。

const App = function Appfunc() {
  return (
     <Provider store={store}>
      <View style={styles.container}>
        <AppNavigator />
      </View>
    </Provider>
  );
}
const AppContainer = createAppContainer(AppNavigator)

export default AppContainer