Ошибка при вызове пути к файлу в реагировать родной. - PullRequest
0 голосов
/ 29 августа 2018

Я решил вложить каждый реагирующий нативный компонент и экран в собственную указанную подпапку. Проблема заключается в том, что когда я импортирую собственный компонент реагирования в другой файл, он выдает мне эту ошибку: ios Simulator , и я импортирую все сразу. Я проверил путь несколько раз, чтобы убедиться, что все правильно. Кроме того, в моем файле навигации я использую тот же путь к файлу, и все работает отлично. Вот как мои папки и подпапки вложены в файл src: структура файлов . И это мой файл навигации (все импортируется правильно в этом файле, я думаю, потому что он находится вне файла src):

import React from 'react';
import { createStackNavigator, createBottomTabNavigator } from 'react-navigation';
import { Icon } from 'react-native-elements';

import WelcomeScreen from './src/components/screens/WelcomeScreen/WelcomeScreen';
import ProfileScreen from './src/components/screens/ProfileScreen/ProfileScreen';
import RegistrationScreen from './src/components/screens/RegistrationScreen/RegistrationScreen';
import RecieveMenuScreen from './src/components/screens/RecieveMenuScreen/RecieveMenuScreen';
import SendDetailsScreen from './src/components/screens/SendDetailsScreen/SendDetailsScreen';
import SendAddressScreen from './src/components/screens/SendAddressScreen/SendAddressScreen';
import SendShipmentScreen from './src/components/screens/SendShipmentScreen/SendShipmentScreen';
import SendOverviewScreen from './src/components/screens/SendOverviewScreen/SendOverviewScreen';
import SendReceiptScreen from './src/components/screens/SendReceiptScreen/SendReceiptScreen';
import SettingsScreen from './src/components/screens/SettingsScreen/SettingsScreen';

const WelcomeStack = createStackNavigator({
	Welcome: {
		screen: WelcomeScreen,
		navigationOptions: {
			header: null
		}
	}
});

const SendStack = createStackNavigator({
	SendDetails: {
		screen: SendDetailsScreen,
		navigationOptions: {
			headerTitle: 'Enter Details'
		}
	},
	SendAddress: {
		screen: SendAddressScreen,
		navigationOptions: {
			headerTitle: 'Shipment Address'
		}
	},
	SendShipment: {
		screen: SendShipmentScreen,
		navigationOptions: {
			headerTitle: 'Send Shipment'
		}
	},
	SendOverview: {
		screen: SendOverviewScreen,
		navigationOptions: {
			headerTitle: 'Shipment Overview'
		}
	},
	SendReceipt: {
		screen: SendReceiptScreen,
		navigationOptions: {
			headerTitle: 'Shipment Details'
		}
	}
});

const RecieveStack = createStackNavigator({
	RecieveMenu: {
		screen: RecieveMenuScreen,
		navigationOptions: {
			headerTitle: 'Incoming Shipments'
		}
	}
});

const ProfileStack = createStackNavigator({
	Profile: {
		screen: ProfileScreen,
		navigationOptions: {
			headerTitle: 'Profile'
		}
	}
});

const SettingsStack = createStackNavigator({
	Settings: {
		screen: SettingsScreen,
		navigationOptions: {
			headerTitle: 'Settings'
		}
	}
});

export const Tabs = createBottomTabNavigator({
	Recieve: {
		screen: RecieveStack,
		navigationOptions: {
			tabBarLabel: 'Recieve',
			tabBarIcon: ({ tintColor }) => <Icon name="list" size={35} color={tintColor} />
		}
	},
	Send: {
		screen: SendStack,
		navigationOptions: {
			tabBarLabel: 'Send',
			tabBarIcon: ({ tintColor }) => <Icon name="account-circle" size={35} color={tintColor} />
		}
	},
	Profile: {
		screen: ProfileStack,
		navigationOptions: {
			tabBarLabel: 'Profile',
			tabBarIcon: ({ tintColor }) => <Icon name="account-circle" size={35} color={tintColor} />
		}
	},
	View: {
		screen: SettingsStack,
		navigationOptions: {
			tabBarLabel: 'View',
			tabBarIcon: ({ tintColor }) => <Icon name="account-circle" size={35} color={tintColor} />
		}
	}
});

export const Routes = createStackNavigator({
	Welcome: {
		screen: WelcomeStack,
		navigationOptions: {
			header: null
		}
	},
	Registration: {
		screen: RegistrationScreen,
		navigationOptions: {
			headerTitle: 'Registration'
		}
	},
	Profile: {
		screen: Tabs,
		navigationOptions: {
			header: null
		}
	}
});

Возможно, я делаю что-то не так, когда импортирую файл в другой файл, который также находится в папке src, но мне нужно, чтобы кто-то указал мне, что именно я делаю неправильно.

1 Ответ

0 голосов
/ 29 августа 2018

Хорошо ориентироваться с относительными путями не так сложно:)

так что если вы хотите импортировать что-нибудь, например 'ProfileScreen' + 'BarCode' для WelcomeScreen

Ваш файл должен выглядеть так:

. / SRC / компоненты / экраны / WelcomeScreen / WelcomeScreen.js'

import BarCode from './../../common/BarCode/BarCode';
import ProfileScreen from './../ProfileScreen/ProfileScreen';

{...}

"./ .." = один слой вверх (например, "cd .." )

так вы всегда начинаете с того места, куда вы импортируете файл (в данном случае '. / src / компоненты / экраны / WelcomeScreen / WelcomeScreen.js' )

поэтому вы начинаете с './src/components/screens/WelcomeScreen/'

выполнив "./../../" , вы получите '. / Src / components /'

и отсюда вам нужно перейти в '. / Common / BarCode /' , где 'BarCode.js' лежит

укоротить и положить все вместе, вы заканчиваете на:

. / .. / .. / общий / BarCode / BarCode '

...