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

React Native如何导入其他文件夹中的图片?(含项目结构与报错)

解决React Native图片导入路径错误问题

看你的错误提示和项目结构,问题出在路径相对位置搞错,还有两个小细节没注意到,我给你一步步理清楚:

问题分析

你的like.js在components/basic目录下,用./assets/icons/heart.png的话,程序会去components/basic/assets/icons找文件——但你的assets明明在项目根目录,这就导致了找不到文件的错误。另外还有两个小问题:

  • React Native的Image组件用的是source属性,不是src
  • 你没有在代码里导入Image组件

解决方案

方法1:修正相对路径(快速解决)

从components/basic回到项目根目录需要往上跳两级(../代表上一级目录,../../就是根目录),然后再指向assets。同时补上Image的导入,把src改成source:

import React,{ Component } from 'react';
// 加上Image组件的导入
import{ View, Text, Image, AppRegistry } from 'react-native';

class Example extends Component {
  render () {
    return(
      // 修正路径,替换src为source
      <Image source={require('../../assets/icons/heart.png')} />
    );
  }
}

export default Example;

方法2:配置路径别名(适合大型项目)

如果项目文件层级多,每次写长相对路径很麻烦,可以给根目录配置别名。比如在项目根目录的babel.config.js里添加如下配置:

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [
    [
      'module-resolver',
      {
        root: ['./'],
        alias: {
          '@': './'
        }
      }
    ]
  ]
};

然后安装对应的依赖:

npm install --save-dev babel-plugin-module-resolver

之后你就可以用更简洁的路径导入图片了:

<Image source={require('@/assets/icons/heart.png')} />

这样修改后应该就能正常加载图片了,试试吧!

内容的提问来源于stack exchange,提问作者Gagan Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:26:51