首页 文章

无法在React Native App中解析模块

提问于
浏览
10

我'm getting an error in React Native saying it can' t解析一个模块 . 它存在's saying a certain folder doesn'但路径不准确 . 它告诉我 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'

所以我应该能像_1183334一样导入它们吗?我没有遇到任何其他组件的问题 . 只是 AppContainer .

谢谢!

7 回答

  • 39

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

  • 0

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

  • 3

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

  • 1

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

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

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

    export class AppContainer [...]
    

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

    export default class AppContainer [...]
    

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

    import AppContainer from './App/AppContainer';
    
  • 1

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

  • 0

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

    实际的潜在错误是 not a typo ,但实际上 another file 导入 ./Foo .

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

    <Bar>...</Bar>

    那你必须有:

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

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

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

    React.createComponent(...)

    如果 React 尚未导入 explicitly ,则此引用将无效,因此此依赖文件的评估随后失败 .

    不幸的是,结果是 ./Foo (以及 ./Bar )将在您的应用中无法使用,因此RN表示无用的事情,如 module not foundIndeed, none of these files exist .

    希望有所帮助 .

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

  • 0

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

相关问题