Ответ 1
react-native start --reset-cache
решил проблему. https://github.com/facebook/react-native/issues/1924
Я получаю сообщение об ошибке в React Native, говоря, что он не может разрешить модуль. Он говорит, что определенная папка не существует, но путь не является точным. Это говорит мне, что Directory /Users/user/Desktop/RNApp/app/app/containers
не существует. Я понятия не имею, где второе приложение появляется на пути. Мой каталог выглядит следующим образом
Вот как я экспортирую свои компоненты контейнера в app/containers/index.js
export RNAppNavigator from './Navigator/RNAppNavigator'
export SplashContainer from './Splash/SplashContainer'
export AppContainer from './App/AppContainer'
Итак, я должен иметь возможность импортировать их как import {AppContainer} from '~/containers
правильно? У меня нет проблем с другими компонентами. Просто AppContainer
.
Спасибо!
react-native start --reset-cache
решил проблему. https://github.com/facebook/react-native/issues/1924
Если у вас возникают похожие проблемы с чистыми компонентами или классами, убедитесь, что вы используете расширение .js
вместо .jsx
.
В зависимости от структуры вашей папки, попробуйте импортировать это значение в index.js:
import { AppContainer } from './App/AppContainer';
Если вы используете именованный экспорт, то есть, если вы делаете:
export class AppContainer [...]
Если вы используете экспорт по умолчанию, например:
export default class AppContainer [...]
Деструктурирование объекта не удастся. Вы должны сделать вместо этого:
import AppContainer from './App/AppContainer';
Я потерял желание жить над этой ошибкой, RN сказал мне, что импортированный файл ./Foo
не существовал, когда он был там!
Фактическая основная ошибка: не опечатка, а фактически в другом файле, который ./Foo
импортирован.
Будьте осторожны. Если вы пишете JSX
где угодно (например, в ./Bar
):
<Bar>...</Bar>
то вы должны иметь:
import * as React from 'react'
(или аналогичный)
присутствует в этом файле (./Bar
).
Когда синтаксический сахар (угловые скобки) переполняется, он наивно выплевывает что-то вроде:
React.createComponent(...)
И если React
не импортировано явно, эта ссылка будет недействительной, поэтому впоследствии будет проигнорирована оценка этого зависимого файла.
К сожалению, результат состоит в том, что в вашем приложении ./Foo
(а также ./Bar
) будет недоступно, и поэтому RN говорит о бесполезных вещах, таких как module not found
и Indeed, none of these files exist
.
Надеюсь, что это поможет.
пс. вы также можете испытать подобное несчастье, если у вас есть круговые зависимости между файлами! Такая забава!
Убедитесь, что модуль определен в package.json, используйте npm install
а затем попробуйте по react-native link
У меня была такая же проблема — fix был babel-preset-react-native-stage-0
вместо babel-preset-react-native
.
Для меня, используя экспо, я просто должен был перезапустить экспо. ctrl + c
и yarn start
или yarn start
expo start
и запуск на симуляторе ios или на вашем устройстве, в зависимости от того, с чем вы тестируете.
Похоже, ваша ошибка исходит из внешнего файла index.js, а не из этого. Вы импортируете этот файл как. /app/containers? потому что это должно быть просто "./containers"
Мне удалось решить эту проблему, добавив расширение файла .js. Я использовал Intellij и создал файл js, но у него не было расширения файла. Когда я сделал рефрактор, переименую и изменил свой компонент из "List" в "List.js", отреагировал нативный, но знал, как его разрешить.
Оборудование → Стереть весь контент и настройки сделали работу за меня (другие вещи не сделали).
Если путь к файлу указан верно, проверьте, содержит ли один файл
import React from './node_modules/react';
заменить его на
import React, { Component } from 'react';