Невозможно разрешить модуль в приложении React Native

Я получаю сообщение об ошибке в 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.

Спасибо!

Ответ 2

Если у вас возникают похожие проблемы с чистыми компонентами или классами, убедитесь, что вы используете расширение .js вместо .jsx.

Ответ 3

В зависимости от структуры вашей папки, попробуйте импортировать это значение в index.js:

import { AppContainer } from './App/AppContainer';

Если вы используете именованный экспорт, то есть, если вы делаете:

export class AppContainer [...]

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

export default class AppContainer [...]

Деструктурирование объекта не удастся. Вы должны сделать вместо этого:

import AppContainer from './App/AppContainer';

Ответ 4

Я потерял желание жить над этой ошибкой, 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.

Надеюсь, что это поможет.

пс. вы также можете испытать подобное несчастье, если у вас есть круговые зависимости между файлами! Такая забава!

Ответ 5

Убедитесь, что модуль определен в package.json, используйте npm install а затем попробуйте по react-native link

Ответ 6

У меня была такая же проблема — fix был babel-preset-react-native-stage-0 вместо babel-preset-react-native.

Ответ 7

Для меня, используя экспо, я просто должен был перезапустить экспо. ctrl + c и yarn start или yarn start expo start и запуск на симуляторе ios или на вашем устройстве, в зависимости от того, с чем вы тестируете.

Ответ 8

Похоже, ваша ошибка исходит из внешнего файла index.js, а не из этого. Вы импортируете этот файл как. /app/containers? потому что это должно быть просто "./containers"

Ответ 9

Мне удалось решить эту проблему, добавив расширение файла .js. Я использовал Intellij и создал файл js, но у него не было расширения файла. Когда я сделал рефрактор, переименую и изменил свой компонент из "List" в "List.js", отреагировал нативный, но знал, как его разрешить.

Ответ 10

Оборудование → Стереть весь контент и настройки сделали работу за меня (другие вещи не сделали).

Ответ 11

Если путь к файлу указан верно, проверьте, содержит ли один файл

import React from './node_modules/react';

заменить его на

import React, { Component } from 'react';