Фабрика native.createnavigator не є функцією


10

Я збираюся створити навігацію для ящиків у своєму проекті.

Я встановив це за допомогою цієї команди:

npm install @react-navigation/drawer

Потім імпортували це в App.js

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

Це мій package.jsonвміст:

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

Це мій App.jsвміст:

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

Слід сказати, що я вже створив Loginі SecondPageкомпоненти та оголосив їх у файлі з назвоюroot.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);

Але я отримую помилку (наступний екран).

Як я можу це виправити?

введіть тут опис зображення

index.js

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

1
У мене була така ж проблема, повторно запустіть - npm install @ react-navigation / native вирішив проблему
Лірон Шер

Я дуже ціную це, питання вирішено, чи знаєте ви, як змінити стиль ящика? Я маю на увазі backgroundeColor та інше ...
roz333

дякую оновлення @LironSher @ react-navigation / native працював на мене
Хассан,

Відповіді:


0

Я не розумію, що ти зараз намагаєшся зробити. Я думаю, ви хочете додати ящик Навігатора.

Ваша проблема полягає в тому, що ви повинні використовувати один контейнер, але у вас є два, і createStackNavigator має два параметри, але у вас є три.

createStackNavigator (RouteConfigs, StackNavigatorConfig);

Я думаю, що ваша структура навігатора повинна бути такою.

Ящики.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}

АБО

Ця проблема може бути проблемою сумісності з версією. React-Navigationі StackNavigatorверсії повинні бути оновленими.


Я спробував ваше рішення зараз, на жаль, не вийшло
roz333

@ roz333 Чи трапляється така ж помилка?
розробник Гонга

так точно така ж помилка
roz333

@ roz333 Чи можете ви показати мені файл index.js?
розробник Гонга

Звичайно, це вміст index.js: `` `експортувати * з './login'; експортувати * з './header'; експортувати * з './secondpage'; експортувати * з './footer'; експортувати * з './thirdpage'; `` `
roz333

14

Ви поєднуєте в своєму проекті Реактивну Навігацію 4 та Реактивну навігацію 5. Це не дійсно.

Реагувати навігації 4 упаковки: react-navigation, react-navigation-stack,react-navigation-drawer і т.д.

5 пакетів React Navigation: @react-navigation/native , @react-navigation/stack,@react-navigation/drawer і т.д.

Дотримуйтесь офіційних документів та використовуйте правильну версію та синтаксис пакетів https://reactnavigation.org/docs/en/getting-started.html

В основному видаліть код root.jsі створіть навігатор стеків, як тут https://reactnavigation.org/docs/en/stack-navigator.html


0

спробуйте встановити: пряжа додайте реакцію-навігацію-стек

та залежності: пряжа додає react-native-gesture-handler react-native-reanimated react-native-екрани react-native-safe-area-context @ react-native-community / masked-view

у ваших маршрутах: імпортувати {createStackNavigator} з 'react-navigation-stack';


-1

Вміст Index.js

export * from './login';
export * from './header';
export * from './secondpage';
export * from './footer';
export * from './thirdpage';
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.