Экспорт и импорт экранов и таблиц стилей из отдельных файлов - PullRequest
0 голосов
/ 04 августа 2020

Фон

Я кодировал каждый из своих экранов в React Native в одном файле. Я подумал, что было бы гораздо эффективнее иметь каждый экран в отдельном файле. У меня были все 11 экранов в одном файле и StyleSheet. Раньше путь был './app/Screens.js'. Я создал папку в app под названием screens, и в этой папке у меня есть каждый экран в отдельном файле, а также StyleSheet. Новый путь к StyleSheet - './app/screens/StylesPack.js', просто чтобы показать пример.

Проблема

В первый раз, когда я пытаюсь просмотреть приложение на выставке, я бы получить сообщение об ошибке Failed building JavaScript bundle. Unable to resolve "./screens/StylesPack.js" from "app\screens\Home.js" в CMD и error while reading multipart response в моем телефоне. Подумал, что проблема должна быть в том, что я не звонил на свой StylesPack.js должным образом, поэтому я пошел и изменил его на './app/screens/StylesPack.js', однако это тоже не сработало. Однако изменилось одно: сообщение об ошибке в моем телефоне теперь The development server returned response error code: 500, за которым следует URL.

Вопрос

Возможно ли иметь такую ​​настройку, как эта ? Нужно ли мне go возвращаться к каждому экрану в том же файле? Есть идеи, почему я получаю какие-либо из этих ошибок?

Большое спасибо!

Примечания и правки

Примечание 1: у меня было забыл изменить путь Home.js на ./app/screens/StylesPack.js, когда я это сделал, сообщение об ошибке вернулось к Error while reading multipart response. Response code: 200

Примечание 2: повторная загрузка приложения возвращает ошибку 500, повторяя это в другой раз вернуться к ошибке 200.

Код импорта / экспорта:

В приложении. js:

import {HomeScreen} from './app/screens/Home.js';
import {LoginScreen} from './app/screens/Login.js';
import {CreateAccountScreen} from './app/screens/CreateAccount.js';
import {AScreen} from './app/screens/A.js';
import {BScreen} from './app/screens/B.js';
import {CScreen} from './app/screens/C.js';
import {DScreen} from './app/screens/D.js';
import {EScreen} from './app/screens/E.js';
import {FScreen} from './app/screens/F.js';
import {GScreen} from './app/screens/G.js';
import {HScreen} from './app/screens/H.js';

В спецификациях c экран:

import {styles} from './app/screens/StylesPack.js';
export const HomeScreen 

В StylesPack. js:

const styles = StyleSheet.create ({})

export {styles};

1 Ответ

0 голосов
/ 05 августа 2020

Итак, ответ был действительно простым, и я мог понять его, только стуча головой о стену снова и снова. Оказывается, проблема была в том, как я импортировал. Вместо использования «полного пути», как в './app/screens/StylesPack.js', мне просто нужно было использовать '../', так что это будет '../screens/StylesPack.js'

Теперь вам может быть интересно, может ли кто-то чувствовать себя таким глупым, но таким гордым самого себя в конкретный c момент времени? Да, да, может. Я кто-то.

...