#react-native #react-navigation #react-navigation-stack
Вопрос:
пакет.json:
"@react-navigation/native": "^5.9.4",
"@react-navigation/stack": "^5.14.5",
Главный навигатор:
import React from 'react';
import {
createStackNavigator,
createAppContainer,
} from 'react-navigation/stack';
import HomeScreen from './Surveys'
const Stack = createStackNavigator(MyStack);
function MyStack() {
return (
<Stack.Navigator>
<Stack.Screen name="HomeScreen" component={HomeScreen} />
</Stack.Navigator>
)
}
export default createAppContainer(Stack);
Я удалил node_modules, npm, установленный для Expo, установленный специально для react-навигации/родной, установленный специально для react-навигации/стека.. Я целый час ходил по кругу над этим, но ничего не исправил.
Комментарии:
1. вы забыли добавить
@
в инструкцию импорта.import {createStackNavigator, createAppContainer} from '@react-navigation/stack';
ТакжеcreateAppContainer
это старое использование навигации react. вам необходимо импортироватьNavigationContainer
из@react-navigation/native
для версии 5 reactnavigation.org/docs/getting-started … Кроме того,createStackNavigator(MyStack)
? Пожалуйста, ознакомьтесь с документацией…
Ответ №1:
Попробуйте это:
$ yarn add react-navigation
$ expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view
$ yarn add react-navigation-stack @react-native-community/masked-view
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
Комментарии:
1. Модуль не найден: Не удается разрешить «реагирование-навигация/стек»
2. @infinesse после смены пакетов и импорта?
Ответ №2:
я пытался повторно использовать части старого проекта, используя старые версии этих библиотек/компонентов. решение состояло в том, чтобы построить его с нуля с текущими версиями, что было очень легко/быстро. я потратил впустую несколько часов, что, я думаю, не является полной потерей, потому что послужит напоминанием о том, что иногда лучше просто начать с нуля.