#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/ для установки и использования.