Почему я продолжаю получать следующую ошибку : «Не удается разрешить модуль @react-navigation-stack»?

#react-native #react-navigation #react-navigation-stack

Вопрос:

Я создаю проект в React Native с expo помощью . Я продолжаю получать ту же ошибку: введите описание изображения здесь

Вот мой App.js :

 import 'react-native-gesture-handler';    
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { createStackNavigator } from '@react-navigation-stack';
import Home from './src/components/Home.js';

const Stack = createStackNavigator();

function myStack() {
  return (
    <Stack.Navigator>
      <Stack.Sreen 
      name="Home" 
      component={Home}
      />
    </Stack.Navigator>
  );
}

export default function App() {
  return (
    <NavigationContainer>
      <myStack/>
    </NavigationContainer>
  );
}
 

И вот небольшая часть моей package.json :

 "dependencies": {
    "@react-navigation/core": "react-navigation/core",
    "@react-navigation/native": "react-navigation/native",
    "expo": "~42.0.1",
    "expo-status-bar": "~1.0.4",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz",
    "react-native-gesture-handler": "~1.10.2",
    "react-native-web": "~0.13.12",
    "react-navigation": "^4.4.4",
    "react-navigation-stack": "^2.10.4"
},
 

Не могли бы вы, пожалуйста, помочь мне понять, почему я продолжаю получать эту ошибку, даже несмотря на то, что я установил react-navigation-stack ?

Ответ №1:

Пожалуйста, прочтите инструкции для react-navigation версии 4.x, react-navigation-stack.

Удалите знак@, и вам нужно использовать его вот так:

 import { createStackNavigator } from 'react-navigation-stack';
 

И для установки, пожалуйста, выполните приведенную ниже команду cmd для expo :

expo установите react-навигационный стек

Надеюсь, это сработает для вас.

Комментарии:

1. Зачем предлагать кому-то использовать более старую версию, если они уже используют новый API? Правильное исправление, чтобы использовать правильное имя пакета, не использовать более старую версию и переписать все использование.

2. Он уже использует версию 4.x, ничего здесь не рекомендовал, это просто исправление, о котором я упоминал.

3. Согласно их кодексу, это не так. Даже если у них есть это в пакете.json. Несмотря на то, что они начинают новый проект, судя по его внешнему виду, рекомендовать более старую версию библиотеки для новых проектов не очень хорошо. В будущем это только собьет их с толку.

Ответ №2:

Вы неправильно ввели имя пакета. Это @react-navigation/stack , не @react-navigation-stack

Видишь https://reactnavigation.org/docs/stack-navigator/ для установки и использования.