Fabryka native.createnavigator nie jest funkcją

10

W moim projekcie zamierzam zaprojektować nawigację szufladową.

Zainstalowałem to za pomocą tego polecenia:

npm install @react-navigation/drawer

Następnie zaimportowałem to do App.js

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

To jest moja package.jsontreść:

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

To jest moja App.jstreść:

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

Powinienem powiedzieć, że już utworzyłem Logini SecondPagekomponenty i zadeklarowałem je w pliku o nazwieroot.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);

Ale pojawia się błąd (następujący ekran).

Jak mogę to naprawić?

wprowadź opis zdjęcia tutaj

index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
roz333
źródło
1
Miałem ten sam problem, uruchom ponownie - npm install @ reaguj-nawigacja / natywny rozwiązał problem
Liron Sher
Naprawdę to doceniam, Problem został rozwiązany, Czy wiesz, jak zmienić styl szuflady? Mam na myśli backgroundeColor i itp ...
roz333
dzięki @LironSher aktualizacja @ reaguj-nawigacja / native pracował dla mnie
Hassan

Odpowiedzi:

0

Nie rozumiem, co teraz próbujesz zrobić. Myślę, że chcesz dodać nawigator z szufladami.

Problem polega na tym, że musisz użyć jednego kontenera, ale masz dwa, a createStackNavigator ma dwa parametry, ale masz trzy.

createStackNavigator (RouteConfigs, StackNavigatorConfig);

Myślę, że twoja struktura nawigatora powinna wyglądać następująco.

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}

LUB

Ten problem może być problemem kompatybilności z wersją. React-Navigationi StackNavigatorwersje muszą być aktualne.

hong programista
źródło
Wypróbowałem teraz Twoje rozwiązanie, niestety nie zadziałało
roz333
@ roz333 Czy występuje ten sam błąd?
hong programista
tak dokładnie ten sam błąd
roz333
@ roz333 Czy możesz mi pokazać plik index.js?
hong programista
Na pewno jest to zawartość index.js: `` eksport * z './login'; eksport * z „./header”; eksport * z „./secondpage”; eksport * z „./footer”; eksport * z „./thirdpage”; ``
roz333
14

W swoim projekcie łączysz React Navigation 4 i React Navigation 5. To nie jest poprawne

Nawigacja reagują 4 pakiety: react-navigation, react-navigation-stack, react-navigation-draweritd.

Nawigacja reaguje 5 pakiety: @react-navigation/native, @react-navigation/stack, @react-navigation/draweritd.

Postępuj zgodnie z oficjalnymi dokumentami i użyj prawidłowej wersji i składni pakietów https://reactnavigation.org/docs/en/getting-started.html

Zasadniczo usuń swój kod root.jsi utwórz nawigator stosów, jak tutaj https://reactnavigation.org/docs/en/stack-navigator.html

satya164
źródło
0

spróbuj zainstalować: przędza dodaj reagującą nawigację-stos

i zależności: przędza dodaj program obsługi-gest-native-gest-reakcja-native-reanimowany ekran-reakcyjny-native-reakcja-native-bezpieczny-obszar-kontekst @ reaguj-native-społeczność / maskowany widok

na twoich trasach: zaimportuj {createStackNavigator} z 'reaguj-nawigacja-stos';

Gabriel Scalici
źródło
-1

Zawartość Index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
roz333
źródło