Отсутствует реквизит навигации — react-navigation V3.0

#react-native #react-navigation

#react-native #react-navigation

Вопрос:

Почему я все еще получаю следующее:

 "The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly."
  

Вот мой код:

 const DrawerNavigator = createDrawerNavigator(
  {
    Home: {
        screen: HomeScreen,
    },
    About: {
      screen: Header2,
    },
  },
  DrawerConfig
);


const MyApp11 = createAppContainer(DrawerNavigator);


export default class App12 extends React.Component {
  render() {
    return <MyApp11 />;
  }
}
  

Работа с react native и react navigation.


 {
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "eject": "expo eject"
  },
  "dependencies": {
    "expo": "^32.0.0",
    "prop-types": "^15.7.2",
    "react": "16.5.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
    "react-native-animated-hamburger": "0.0.2",
    "react-native-drawer": "^2.5.1",
    "react-native-elements": "^1.1.0",
    "react-native-vector-icons": "^6.4.2",
    "react-navigation": "^3.8.1"
  },
  "devDependencies": {
    "babel-preset-expo": "^5.0.0"
  },
  "private": true
}
  

Комментарии:

1. Добавьте еще несколько подробностей о вашей проблеме с кодом

Ответ №1:

Согласно вашему коду, вы экспортируете навигацию неправильным способом. вы не должны переносить навигационную константу в компонент react, просто экспортируйте ее непосредственно из вашего js-файла.

создайте route.js создайте файл и добавьте свою оболочку навигации.

 const DrawerNavigator = createDrawerNavigator(
  {
    Home: {
        screen: HomeScreen,
    },
    About: {
      screen: Header2,
    },
  },
  DrawerConfig
);


const MyApp11 = createAppContainer(DrawerNavigator);
export default MyApp11

  

Теперь в app.js импортируйте его и передайте компоненту

app.js

 import Routes from 'path_to_route_file';
export default class App extends Component{
   render(){
    return(
      <View>
         <Routes />
      </View>
    )
  

Комментарии:

1. Я уже пытался написать его только с помощью «экспортировать MyApp11 по умолчанию» (как в вашем ответе), но он отправляет ту же проблему.