我在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
。
谢谢!
答案 0 :(得分:88)
react-native start --reset-cache
解决了这个问题。 https://github.com/facebook/react-native/issues/1924
答案 1 :(得分:5)
如果纯组件或类遇到类似问题,请确保使用.js
扩展名而不是.jsx
。
答案 2 :(得分:3)
根据您的文件夹结构,尝试在index.js中导入:
import { AppContainer } from './App/AppContainer';
如果您正在使用命名导出,那就是您正在执行:
export class AppContainer [...]
如果您使用默认导出,例如:
export default class AppContainer [...]
对象解构将失败。你必须改为:
import AppContainer from './App/AppContainer';
答案 3 :(得分:3)
我失去了忍受这个错误的意愿,RN告诉我导入的文件./Foo
在它就在那里时不存在!
实际的潜在错误不是拼写错误,但实际上是{strong>导入./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。如果文件之间存在循环依赖关系,您也会遇到类似的痛苦!好玩!
答案 4 :(得分:2)
确保在package.json中定义了模块,请使用npm install
,然后尝试react-native link
答案 5 :(得分:1)
我遇到了完全相同的问题 - 修正为babel-preset-react-native-stage-0
,而不是babel-preset-react-native
。
答案 6 :(得分:1)
对我来说,使用 expo ,我只需要重新启动expo。 ctrl + c
和yarn start
或expo start
,然后在ios模拟器或您的设备上运行,无论您使用哪个测试。
答案 7 :(得分:1)
我也遇到了同样的问题,现在解决了。如果您遇到纯组件或类的问题,请确保您使用的是 .js 扩展名而不是 .jsx。
答案 8 :(得分:0)
答案 9 :(得分:0)
使用这个对我有用npm cache add <package name><@version>
。
示例:
npm cache add react-native-paper@0.1.9
答案 10 :(得分:0)
Reset Metro Bundler cache: rm -rf /tmp/metro-bundler-cache-*
react-native start --reset-cache
答案 11 :(得分:0)
我遇到了这个错误,然后我意识到我的 package.json 文件大部分是空的。首先确保您拥有所有依赖项。
使用 yarn add DEPENDENCY_NAME
添加依赖项。
答案 12 :(得分:0)
我正在使用 react-native CLI,我只是重新启动 rn-cli,pieView.holeRadiusPercent = 0.10
停止进程然后 ctrl+c
答案 13 :(得分:0)
如果您最近在git中进行了名称更改,则仅包括更改文件大小写。 MacOS将忽略此更改。因此,您将必须转到控制台中的文件并更改名称。例如,如果名称更改为menu.js
-> Menu.js
,请在提取请求后使用终端进行手动重命名。
mv menu.js Menu.js
答案 14 :(得分:0)
就我而言,我需要使用扩展文件路径导入
即:
错误:import MyComponent from "componentFolder/myComponent";
右:import MyComponent from "../myAppFolder/componentFolder/myComponent";
这两个选项均未显示Typescript错误,但只有最后一个有效。
答案 15 :(得分:0)
删除节点文件夹并重新启动对我有用(重新启动后运行npm install)
答案 16 :(得分:0)
重新加载该应用程序,导致此错误的原因是在其他本地库(native-base)等指向的库中以响应本机依赖性对文件位置进行了更改。
要解决此问题,您需要查看提到的文件并将文件位置更改为正确的位置。
答案 17 :(得分:0)
看起来你的错误来自外部index.js文件,而不是这个。你是以'./app/containers'的形式导入这个吗?因为它应该只是'./containers'
答案 18 :(得分:0)
如果文件路径正确,则检查其中一个文件是否包含
import React from './node_modules/react';
替换为
import React, { Component } from 'react';
答案 19 :(得分:0)
硬件->删除所有内容和设置 为我完成了工作(其他事情没有完成)。
答案 20 :(得分:0)
我能够通过添加文件扩展名“.js”来解决此问题。我正在使用Intellij并创建了一个js文件,但它没有文件扩展名。当我做一个折射器重命名并将我的组件从“List”更改为“List.js”时,本机会知道如何解决它。
答案 21 :(得分:-1)
使用这个对我有用 npm cache add package name@version 示例:npm 缓存添加 react-native-paper@0.9.1