Невозможно разрешить @ реакции-навигацию / ящик в реагировать на родной для создания навигации по ящику - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь создать новую навигацию по выдвижным ящикам, но получаю следующее сообщение об ошибке

Unable to resolve "react-native-screens" from "node_modules\@react-navigation\drawer\src\views\DrawerView.tsx"
Failed building JavaScript bundle.

, но тот же код, который я пробовал в новом пустом проекте, он работал с реактивом-родным-ящиком в более старой версии "реакция-навигации". ":" ^ 2.6.2 ", но то же самое не работает в" Reaction-Navigation ":" ^ 4.0.10 ", оно показывает, что Reaction-native-Box удален, а @ реагировать-native / box является последним, поэтому нам нужно используйте это, но это не работает, пожалуйста, помогите мне решить это ... Код ниже

import * as React from 'react';
import { View, Text } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createDrawerNavigator } from '@react-navigation/drawer';

function Feed() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Feed Screen</Text>
    </View>
  );
}

function Article() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Article Screen</Text>
    </View>
  );
}

const Drawer = createDrawerNavigator();

function MyDrawer() {
  return (
    <Drawer.Navigator>
      <Drawer.Screen name="Feed" component={Feed} />
      <Drawer.Screen name="Article" component={Article} />
    </Drawer.Navigator>
  );
}

export default function DrawerNavigator() {
  return (
    <NavigationContainer>
      <MyDrawer />
    </NavigationContainer>
  );
}

1 Ответ

0 голосов
/ 19 февраля 2020

Наконец, это работает для меня ... вместо @ реакции-навигации / ящика мы можем использовать

import { createDrawerNavigator,DrawerItems} from 'react-navigation-drawer';

это работает, и я вставил свой рабочий код ниже

В ReactNative В обновлении они переместили createDrawerNavigator и DrawerItems из реагирующей навигации в ящик с реагирующей навигацией ...

import React from 'react';
import { StyleSheet, Text, View, SafeAreaView, ScrollView,Dimensions,Image } from 'react-native';

import { createAppContainer} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';
import { createDrawerNavigator,DrawerItems} from 'react-navigation-drawer';

import Login from '../screens/Login';
import Home from '../screens/Home';



const CustomDrawComponent=(props) => (
    <SafeAreaView style={{flex:1}}>
        <View style={{paddingTop:45, backgroundColor:'green'}}>
      <View style={{height:150,alignItems:'center', justifyContent:'center'}}>
        <Image source={require('../assets/Logos/userPic.png')} 
                style={{height:120,width:120,borderRadius:60}} />
      </View>
      </View>
      <ScrollView>
        <DrawerItems {...props}/>
      </ScrollView>
      <Text style={{paddingBottom:100, paddingLeft:65}}>Vision Cultura V1.0</Text>
    </SafeAreaView>
  )
const screens = createDrawerNavigator({
    Main: {
            screen: createStackNavigator({
            Home: {screen: Home},
            Login: {screen: Login},

        }, {initialRouteName: "Login"})
    },
    Home: Home,
    Login: Login

},
{
    contentComponent:CustomDrawComponent
});

const index = createAppContainer(screens);
export default index;
...