无法在React Native App中解析模块

问题描述 投票:19回答:11

我在React Native中遇到错误,说它无法解析模块。它说某个文件夹不存在,但路径不准确。它告诉我,Directory /Users/user/Desktop/RNApp/app/app/containers不存在。我不知道第二个应用程序来自哪条路径。我的目录看起来像这样

enter image description here

这就是我在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
11个回答
92
投票

react-native start --reset-cache解决了这个问题。 https://github.com/facebook/react-native/issues/1924


0
投票

硬件 - >删除所有内容和设置为我做了工作(其他事情没有)。


0
投票

如果您的文件路径正确,则检查包含的任何一个文件

import React from './node_modules/react';

用它替换它

import React, { Component } from 'react';

6
投票

如果您遇到与纯组件或类相似的问题,请确保使用.js扩展而不是.jsx


3
投票

根据您的文件夹结构,尝试在index.js中导入:

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

如果您使用的是命名导出,那就是您正在执行的操作:

export class AppContainer [...]

如果您使用的是默认导出,例如:

export default class AppContainer [...]

对象解构将失败。你必须这样做:

import AppContainer from './App/AppContainer';

3
投票

我失去了忍受这个错误的意愿,RN告诉我,当它就在那里时,导入的文件./Foo不存在!

实际的潜在错误不是拼写错误,而是实际上在./Foo导入的另一个文件中。

小心。如果你在任何地方写JSX(例如在./Bar):

<Bar>...</Bar>

那你必须有:

import * as React from 'react'(或类似)

存在于该文件中(./Bar)。

当语法糖(有角度的括号)被转化时,它会天真地吐出类似于:

React.createComponent(...)

如果未明确导入React,则此引用将无效,因此对此依赖文件的评估随后失败。

不幸的是,结果是./Foo(以及./Bar)将在你的应用程序中无法使用,因此RN说无益的东西,如module not foundIndeed, none of these files exist

希望有所帮助。

PS。如果文件之间存在循环依赖关系,您也会遇到类似的痛苦!好好玩!


2
投票

确保模块在package.json中定义使用npm install然后尝试react-native link


2
投票

对我来说,使用世博会,我只需要重启世博会。 ctrl + cyarn startexpo start以及在ios模拟器或您的设备上运行,无论您正在测试哪个。


1
投票

我有完全相同的问题 - 修复是babel-preset-react-native-stage-0,而不是babel-preset-react-native


0
投票

看起来你的错误来自外部index.js文件,而不是这个。你是以'./app/containers'的形式导入这个吗?因为它应该只是'./containers'


0
投票

我能够通过添加文件扩展名“.js”来解决此问题。我正在使用Intellij并创建了一个js文件,但它没有文件扩展名。当我做一个折射器重命名并将我的组件从“List”更改为“List.js”时,本机会知道如何解决它。

© www.soinside.com 2019 - 2024. All rights reserved.