native.createnavigator factory ist keine Funktion


10

Ich werde in meinem Projekt eine Schubladen-Navigation entwerfen.

Ich habe das mit diesem Befehl installiert:

npm install @react-navigation/drawer

Dann importierte das in App.js

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

Das ist mein package.jsonInhalt:

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

Das ist mein App.jsInhalt:

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

Ich sollte sagen, dass ich bereits Komponenten erstellt Loginund SecondPagein einer Datei mit dem Namen deklariert haberoot.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);

Aber ich erhalte eine Fehlermeldung (folgender Bildschirm).

Wie kann ich das beheben?

Geben Sie hier die Bildbeschreibung ein

index.js

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

1
Ich hatte das gleiche Problem, erneut ausführen - npm install @ react-navigation / native hat das Problem gelöst
Liron Sher

Ich weiß das wirklich zu schätzen. Das Problem wurde behoben. Wissen Sie, wie Sie den Schubladenstil ändern können? Ich meine backgroundeColor und so weiter ...
roz333

danke @LironSher update @ react-navigation / native hat für mich gearbeitet
Hassan jan

Antworten:


0

Ich verstehe nicht, was Sie jetzt versuchen. Ich denke, Sie möchten einen Schubladen-Navigator hinzufügen.

Ihr Problem ist, dass Sie einen Container verwenden müssen, aber zwei, und createStackNavigator zwei Parameter hat, aber drei.

createStackNavigator (RouteConfigs, StackNavigatorConfig);

Ich denke, Ihre Navigatorstruktur sollte wie folgt aussehen.

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}

ODER

Dieses Problem kann ein Kompatibilitätsproblem mit der Version sein. React-Navigationund StackNavigatorVersionen müssen aktuell sein.


Ich habe Ihre Lösung jetzt ausprobiert, leider hat sie nicht funktioniert
roz333

@ roz333 Tritt der gleiche Fehler auf?
Hong Entwickler

ja genau der gleiche Fehler
roz333

@ roz333 Kannst du mir die Datei index.js zeigen?
Hong Entwickler

Sicher ist dies der Inhalt von index.js: `` `export * from './login'; export * from './header'; export * from './secondpage'; export * from './footer'; export * from './thirdpage'; `` `
roz333

14

Sie kombinieren in Ihrem Projekt sowohl React Navigation 4 als auch React Navigation 5. Es ist nicht gültig.

Reagieren Navigation 4 Pakete: react-navigation, react-navigation-stack, react-navigation-drawerusw.

Reagieren Navigation 5 Pakete: @react-navigation/native, @react-navigation/stack, @react-navigation/drawerusw.

Befolgen Sie die offiziellen Dokumente und verwenden Sie die korrekte Version und Syntax der Pakete https://reactnavigation.org/docs/en/getting-started.html

Entfernen Sie im Grunde Ihren Code in root.jsund erstellen Sie einen Stack-Navigator wie hier https://reactnavigation.org/docs/en/stack-navigator.html


0

versuchen Sie zu installieren: Garn hinzufügen React-Navigation-Stack

und Abhängigkeiten: Garn hinzufügen React-Native-Gesten-Handler React-Native-Reanimated React-Native-Bildschirme React-Native-Safe-Area-Kontext @ React-Native-Community / Masked-View

in Ihren Routen: importieren Sie {createStackNavigator} von 'react-navigation-stack';


-1

Index.js Inhalt

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.