You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中Metro构建器未识别index.js导致组件导入报错

问题定位

你当前的组件导出写法是完全符合React Native模块规则的,不需要修改导出逻辑
Metro 抛出的 ENOENT 错误本质是路径解析不匹配:导入语句指向的路径,被Metro识别为要加载 screens/Home.js 文件,而非读取 screens/Home 文件夹内的入口文件。
常见触发场景包括相对路径层级错误、Metro缓存残留未识别新建目录。

修复步骤
  • 第一步:核对实际目录结构
    确认文件存放位置符合预期,避免文件和文件夹命名混淆:

    目标结构参考:

    项目根目录
    └── screens
        └── Home (文件夹,非js文件)
            ├── Home.js (内部导出Home组件)
            └── index.js (转发导出组件)
    

    同时根据写导入语句的源文件位置,计算准确的相对路径,避免层级写错导致路径错位。

  • 第二步:清除Metro缓存重启服务
    这类新建目录后找不到文件的报错,绝大多数是Metro旧缓存残留导致的。执行以下命令重启打包服务:

    # npm 项目
    npx react-native start --reset-cache
    
    # yarn 项目
    yarn start --reset-cache
    

    重启后重新编译项目即可。

  • 第三步:显式路径验证
    如果清缓存后仍报错,可以临时把导入语句改成全路径,绕开默认的index.js目录解析规则验证:
    原导入:

    import Home from '../../screens/Home';
    

    临时修改为:

    import Home from '../../screens/Home/index.js';
    

    若修改后能正常运行,说明是目录解析的配置或缓存问题,清缓存后即可改回原导入写法。

内容的提问来源于stack exchange,提问作者Vladimir Melkumyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 01:54:04