我在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
硬件 - >删除所有内容和设置为我做了工作(其他事情没有)。
如果您的文件路径正确,则检查包含的任何一个文件
import React from './node_modules/react';
用它替换它
import React, { Component } from 'react';
如果您遇到与纯组件或类相似的问题,请确保使用.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
。
希望有所帮助。
PS。如果文件之间存在循环依赖关系,您也会遇到类似的痛苦!好好玩!
确保模块在package.json中定义使用npm install
然后尝试react-native link
对我来说,使用世博会,我只需要重启世博会。 ctrl + c
和yarn start
或expo start
以及在ios模拟器或您的设备上运行,无论您正在测试哪个。
我有完全相同的问题 - 修复是babel-preset-react-native-stage-0
,而不是babel-preset-react-native
。
看起来你的错误来自外部index.js文件,而不是这个。你是以'./app/containers'的形式导入这个吗?因为它应该只是'./containers'
我能够通过添加文件扩展名“.js”来解决此问题。我正在使用Intellij并创建了一个js文件,但它没有文件扩展名。当我做一个折射器重命名并将我的组件从“List”更改为“List.js”时,本机会知道如何解决它。