La fabbrica native.createnavigator non è una funzione


10

Progetterò una navigazione del cassetto nel mio progetto.

L'ho installato con questo comando:

npm install @react-navigation/drawer

Quindi importato in App.js

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

Questo è il mio package.jsoncontenuto:

"@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",

Questo è il mio App.jscontenuto:

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>
  )
};

Dovrei dire che ho già creato Logine SecondPagecomponenti e li ho dichiarati in un file chiamatoroot.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);

Ma sto ricevendo un errore (nella schermata seguente).

Come posso risolvere questo problema?

inserisci qui la descrizione dell'immagine

index.js

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

1
Ho avuto lo stesso problema, riesegui - npm install @ reply-navigation / native ha risolto il problema
Liron Sher

Lo apprezzo davvero, il problema è stato risolto, sai come cambiare lo stile del cassetto? Intendo backgroundeColor ed ecc ...
roz333

grazie aggiornamento @LironSher @ reply-navigation / native ha funzionato per me
Hassan

Risposte:


0

Non capisco cosa stai cercando di fare ora. Penso che tu voglia aggiungere un navigatore cassetto.

Il tuo problema è che devi usare un contenitore, ma ne hai due e createStackNavigator ha due parametri, ma ne hai tre.

createStackNavigator (RouteConfigs, StackNavigatorConfig);

Penso che la struttura del tuo navigatore dovrebbe essere la seguente.

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

Questo problema può essere un problema di compatibilità con la versione. React-Navigatione le StackNavigatorversioni devono essere aggiornate.


Ho provato la tua soluzione in questo momento, purtroppo non ha funzionato
roz333

@ roz333 Si verifica lo stesso errore?
hong developer il

Sì, esattamente lo stesso errore
roz333,

@ roz333 Puoi mostrarmi il file index.js?
hong developer il

Sicuro, questo è il contenuto di index.js: `` export * from './login'; export * da './header'; export * da './secondpage'; esportazione * da './footer'; export * da './thirdpage'; ``
roz333

15

Stai combinando React Navigation 4 e React Navigation 5 nel tuo progetto. Non è valido

Reagire Navigazione 4 pacchetti: react-navigation, react-navigation-stack, react-navigation-draweretc.

Reagire Navigazione 5 pacchetti: @react-navigation/native, @react-navigation/stack, @react-navigation/draweretc.

Segui i documenti ufficiali e usa la versione corretta e la sintassi dei pacchetti https://reactnavigation.org/docs/en/getting-started.html

Fondamentalmente rimuovi il tuo codice root.jse crea stack navigator come qui https://reactnavigation.org/docs/en/stack-navigator.html


0

prova a installare: filato aggiungi reatt-navigazione-stack

e dipendenze: il filato aggiunge un gestore-gesti-nativi-reattivi-reagenti-nativi-rianimati-schermi-nativi-reattivi-contesto-nativi-area-sicura-contesto @ comunità-nativi-reattivi / vista mascherata

nei tuoi percorsi: importare {createStackNavigator} da 'reply-navigation-stack';


-1

Contenuto Index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.