Invariant Violation: The navigation prop is missing for this navigator

后端 未结 10 2587
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-30 23:20

I am receiving this message when I tried starting my react native app. Usually this kind of format works on other multi screen navigation yet somehow does not work in this c

10条回答
  •  萌比男神i
    2020-11-30 23:54

    React Navigation 3.0 has a number of breaking changes including an explicit app container required for the root navigator.

    In the past, any navigator could act as the navigation container at the top-level of your app because they were all wrapped in “navigation containers”. The navigation container, now known as an app container, is a higher-order-component that maintains the navigation state of your app and handles interacting with the outside world to turn linking events into navigation actions and so on.

    In v2 and earlier, the containers in React Navigation are automatically provided by the create*Navigator functions. As of v3, you are required to use the container directly. In v3 we also renamed createNavigationContainer to createAppContainer.

    Also please note that if you are now using v4, navigators have been moved to a separate repo. You'll now need to install and import from 'react-navigation-stack'. For example import { createStackNavigator } from 'react-navigation-stack' The solution below is for v3.

    import {
      createStackNavigator,
      createAppContainer
    } from 'react-navigation';
    const MainNavigator = createStackNavigator({...});
    const App = createAppContainer(MainNavigator);
    

    A more comprehensive code example:

    import {
          createStackNavigator,
          createAppContainer
        } from 'react-navigation';
    import Login from './view/login.js'
    import SignUp from './view/signup.js'
    
    const RootStack = createStackNavigator({
        Home: {
          screen: Login
        },
        Signup: {
          screen: SignUp
        }
      });
    
    const App = createAppContainer(RootStack);
    
    export default App;
    

提交回复
热议问题