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.json
contenido:
"@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.js
contenido:
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 Login
y SecondPage
componentes 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?
index.js
export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
Respuestas:
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.
Creo que su estructura de navegador debería ser la siguiente.
Drawers.js
App.js
index.js
O
fuente
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-drawer
etc.Navegación reaccionar 5 paquetes:
@react-navigation/native
,@react-navigation/stack
,@react-navigation/drawer
etc.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.js
y cree un navegador de pila como aquí https://reactnavigation.org/docs/en/stack-navigator.htmlfuente
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';
fuente
Contenido de Index.js
fuente