Как я могу исправить эту ошибку: Модуль не найден: Не удается разрешить «react-навигация/стек»?

#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:

я пытался повторно использовать части старого проекта, используя старые версии этих библиотек/компонентов. решение состояло в том, чтобы построить его с нуля с текущими версиями, что было очень легко/быстро. я потратил впустую несколько часов, что, я думаю, не является полной потерей, потому что послужит напоминанием о том, что иногда лучше просто начать с нуля.