Как я могу решить проблему зависимости с моей реагирующей навигацией - PullRequest
0 голосов
/ 28 февраля 2020

Так что я новичок ie в реагировании, пытаюсь научиться разрабатывать приложения. Я пытался узнать, как использовать React Navigation, поэтому я установил его и зависимости, но затем, когда я пытаюсь использовать его, я получаю несколько ошибок. Первое появляется в cmd после запуска npm start:

Some of your project's dependencies are not compatible with currently installed expo package version:
 - react-native-screens - expected version range: 2.0.0-alpha.12 - actual version installed: ^2.0.0-alpha.12
Your project may not work correctly until you install the correct versions of the packages.
To install the correct versions of these packages, please run: expo install [package-name ...]

И затем, когда я запускаю приложение в Android sim, я получаю это:

Unable to resolve "@react-navigation/drawer" from "App.js"
Failed building JavaScript bundle.

Вот мой код :

import React from 'react';
import { StyleSheet, Text, View, Platform, Image, ImageBackground } from 'react-native';
import {Button} from 'native-base';
import { render } from 'react-dom';
import Search from './src/search';
import Landing from './src/landing';
import {NavigationContainer} from '@react-navigation/native'
import {createDrawerNavigator} from '@react-navigation/drawer'
import {createStackNavigator} from '@react-navigation/stack'
import {createMaterialBottomTabNavigator} from '@react-navigation/material-bottom-tabs'
import {createMaterialTopTabNavigator} from '@react-navigation/material-top-tabs'


var myBackground = require('./assets/icons/landing.jpg');
const Drawer = createDrawerNavigator();
const Stack = createStackNavigator();
const MaterialBottomTabs = createMaterialBottomTabNavigator();
const MaterialTopTabs = createMaterialTopTabNavigator();


export default class App extends React.Component {
  state = {

  }

  createHomeStack = () =>
  <Stack.Navigator>
    <Stack.Screen  name="Feed"/>
  </Stack.Navigator>

  createTopTabs = () =>
  {
    return <MaterialTopTabs.Navigator>
      <MaterialTopTabs.Screen name="Tab1" Component={Landing}/>
    </MaterialTopTabs.Navigator>
  }

  render() {
  return (
    <View style={styles.container}>
      <NavigationContainer>
        <Drawer.Navigator>
          <Drawer.Screen name="Home" Component="Landing"/>
          <Drawer.Screen name="Search" Component="Search"/>
          <Drawer.Screen name="Home"/>
        </Drawer.Navigator>
      </NavigationContainer>
    </View>
  );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    marginTop: Platform.OS === "android" ? 50 : 0
  },
});

Кто-нибудь знает, почему я получаю эти ошибки? Я выполнил бесплатную sh установку React Nav прямо перед началом этого. Заранее спасибо!

Пакет. json:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@react-native-community/masked-view": "^0.1.5",
    "@react-navigation/native": "^5.0.8",
    "expo": "~36.0.0",
    "native-base": "^2.13.8",
    "react": "~16.9.0",
    "react-dom": "~16.9.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
    "react-native-gesture-handler": "^1.5.6",
    "react-native-reanimated": "^1.4.0",
    "react-native-safe-area-context": "^0.6.0",
    "react-native-screens": "^2.0.0-alpha.12",
    "react-native-web": "~0.11.7"
  },
  "devDependencies": {
    "@babel/core": "^7.0.0",
    "babel-preset-expo": "~8.0.0"
  },
  "private": true
}

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Вот ссылка на официальные официальные документы реагирования, и очень полезно понять стек реагирования-навигации http://reactnative.dev/docs/navigation

Здесь приведен пример работ с навигацией реагирования-родного https://snack.expo.io/@asad_4561 / 5fcd36? платформа = андроид & имя = createStackNavigator% 20% C2% B7% 20React% 20Navigation & зависимости =% 40react-нативное сообщество% 2Fmasked ракурс% 40% 5E0.1.1% 2C% 40react-навигационный% 2Fnative% 405,0 0,4% 2C% 40react-навигация% 2Fbottom-язычки% 405.0.4% 2C% 40react-навигационная% 2Fdrawer% 405.0.4% 2C% 40react-навигация% 2Fmaterial-снизу Вкладка% 405.0.4% 2C% 40react-навигация % 2Fmaterial-топ-язычки% 405.0.4% 2C% 40react-навигационные% 2Fnative стек% 405.0.4% 2C% 40react-навигационный% 2Fstack% 405.0.4% 2Creact-нативной жест-обработчик% 401.5.2% 2Creact -native-Оживленное% 401.4.0% 2Creact-нативный безопасный участки контекст% 400.6.0% 2Creact-нативные-экраны% 402.0.0-alpha.12 & sourceUrl = HTTPS% 3A% 2F% 2Freactnavigation.org% 2Fexamples% 2F5 .x% 2Fsimple стека. js

1 голос
/ 28 февраля 2020

Так что в вашем случае, как показывает ваш pacakge. json, вы не установили пакеты, которые используются для сборки и укладки. После решения проблемы с ящиком у вас возникнет проблема со стеком. Выполните следующие действия, чтобы воспроизвести вашу проблему

Дополнительная информация о React Navigation Version 5.x

Установить ящик Пакет, используя это:

npm i -s @react-navigation/drawer

Установите стек навигации, используя это:

npm i -s @react-navigation/stack

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

npm i -s @react-navigation/material-bottom-tabs

Установить верхние вкладки материалов, используя это:

npm i -s @react-navigation/material-top-tabs
  • Чтобы решить проблемы, связанные с вашим проектом, выполните все вышеперечисленные шаги

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

О программе Навигация по вкладкам

О навигации по ящикам

...