native.createnavigator factory no es una función

10

Voy a diseñar una navegación de cajones en mi proyecto.

Lo instalé con este comando:

npm install @react-navigation/drawer

Luego importó eso a App.js

import { createDrawerNavigator } from '@react-navigation/drawer';
import { NavigationContainer } from '@react-navigation/native';

Este es mi package.jsoncontenido:

"@react-native-community/masked-view": "^0.1.6",
"@react-navigation/drawer": "^5.0.0",
"react": "16.9.0",
"react-native": "0.61.5",
"react-native-gesture-handler": "^1.5.6",
"react-native-reanimated": "^1.7.0",
"react-native-screens": "^2.0.0-beta.1",
"react-native-view-shot": "^3.0.2",
"react-navigation": "^4.1.1",
"react-navigation-stack": "^2.1.0",

Este es mi App.jscontenido:

const App = () => {
  const Drawer = createDrawerNavigator();
  return (
    <View style={styles.container}>
      <NavigationContainer>
        <Drawer.Navigator initialRouteName="login">
          <Drawer.Screen name="login" component={Login} />
          <Drawer.Screen name="second" component={SecondPage} />
        </Drawer.Navigator>
      </NavigationContainer>
    </View>
  )
};

Debo decir que ya he creado Loginy SecondPagecomponentes y los he declarado en un archivo llamadoroot.js

import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import { Login, Header, SecondPage, Footer, ThirdPage } from './components/index';

const AppNavigator = createStackNavigator({
  login: { screen: Login },
  header: { screen: Header },
  second: { screen: SecondPage },
  footer: { screen: Footer },
  third: { screen: ThirdPage }
}, {
  initialRouteName: 'login',
  headerMode: 'none',
  mode: 'modal',
}, {});

export default createAppContainer(AppNavigator);

Pero recibo un error (siguiente pantalla).

¿Cómo puedo arreglar esto?

ingrese la descripción de la imagen aquí

index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
roz333
fuente
1
Tuve el mismo problema, vuelva a ejecutar - npm install @ react-navigation / native resolvió el problema
Liron Sher
Realmente lo aprecio, el problema se ha resuelto, ¿sabes cómo cambiar el estilo del cajón? Me refiero a backgroundeColor y etc ...
roz333
gracias @LironSher actualización @ react-navigation / native funcionó para mí
Hassan ene

Respuestas:

0

No entiendo lo que estás tratando de hacer ahora. Creo que quieres agregar un navegador de cajones.

Su problema es que tiene que usar un contenedor, pero tiene dos, y createStackNavigator tiene dos parámetros, pero tiene tres.

createStackNavigator (RouteConfigs, StackNavigatorConfig);

Creo que su estructura de navegador debería ser la siguiente.

Drawers.js

export default const Drawers = () => {
  const Drawer = createDrawerNavigator();
  return (
        <Drawer.Navigator initialRouteName="login">
          <Drawer.Screen name="login" component={Login} />
          <Drawer.Screen name="second" component={SecondPage} />
        </Drawer.Navigator>
  )
};

App.js

import Drawers from "./Drawers"
...

const AppNavigator = createStackNavigator({
  login: { screen: Drawers },
  header: { screen: Header },
  second: { screen: SecondPage },
  footer: { screen: Footer },
  third: { screen: ThirdPage }
}, {
  initialRouteName: 'login',
  headerMode: 'none',
  mode: 'modal',
});

export default createAppContainer(AppNavigator)

index.js

import Login from './login';
import Header from './header';
import SecondPage from './secondpage';
import Footer from './footer';
import ThirdPage from './thirdpage';

export { Login, Header, SecondPage, Footer, ThirdPage}

O

Este problema puede ser un problema de compatibilidad con la versión. React-Navigationy las StackNavigatorversiones deben estar actualizadas.

desarrollador de hong
fuente
Probé
@ roz333 ¿Se produce el mismo error?
desarrollador hong
sí exactamente el mismo error
roz333
@ roz333 ¿Puede mostrarme el archivo index.js?
desarrollador hong
Claro, este es el contenido de index.js: `` `export * from './login'; export * desde './header'; exportar * desde './secondpage'; export * desde './footer'; exportar * desde './thirdpage'; `` `
roz333
15

Está combinando React Navigation 4 y React Navigation 5 en su proyecto. No es valido.

Navegación reaccionar 4 paquetes: react-navigation, react-navigation-stack, react-navigation-draweretc.

Navegación reaccionar 5 paquetes: @react-navigation/native, @react-navigation/stack, @react-navigation/draweretc.

Siga los documentos oficiales y use la versión y la sintaxis correctas de los paquetes https://reactnavigation.org/docs/en/getting-started.html

Básicamente elimine su código root.jsy cree un navegador de pila como aquí https://reactnavigation.org/docs/en/stack-navigator.html

satya164
fuente
0

intente instalar: yarn add react-navigation-stack

y dependencias: yarn add react-native-gesto-handler react-native-reanimated react-native-screen reaccion-native-safe-area-context @ react-native-community / masked-view

en sus rutas: importe {createStackNavigator} desde 'react-navigation-stack';

Gabriel Scalici
fuente
-1

Contenido de Index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
roz333
fuente