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

React项目如何从数据文件加载本地图片并传入JSX组件正常渲染

本地图片无法渲染问题解决方案

根因说明

你遇到的.src报错问题核心差异是资源类型不同:你提到的serviceIcon1属于svg组件/结构化图标对象,本身包含.src属性,而png/jpg等普通图片导入后返回的是纯字符串路径,没有.src属性,强行调用就会触发报错。

针对不同存放位置的解决方法

1. 图片存放在public目录

public目录下的资源会直接映射到项目运行的根路径,不需要导入,直接写绝对路径即可:

// 数据文件代码,无需导入图片
export default {
  schoolData: [
    {
      id: 1,
      Register: serviceIcon1,
      title: "Price",
      body: "The highly the not having with lively Our up with.",
      Link:"www.google.com",
      // 直接写public下的相对根路径
      Logo:"/exchanges/testimage.png" 
    }
  ]
}

注意:路径必须以/开头,不要加./、../等相对路径前缀,避免路由跳转时路径解析错误。

2. 图片存放在src/assets目录

先在数据文件中用相对路径导入图片,导入后的结果直接作为Logo字段的值即可:

// 数据文件代码,路径替换为你项目中assets到数据文件的相对路径
import testimage from "../assets/exchanges/testimage.png";

export default {
  schoolData: [
    {
      id: 1,
      Register: serviceIcon1,
      title: "Price",
      body: "The highly the not having with lively Our up with.",
      Link:"www.google.com",
      Logo: testimage
    }
  ]
}

两种方案的JSX代码都不需要修改,保持src={schoolData.Logo}即可正常渲染。

排查验证方法

如果修改后还是无法显示,可以先在JSX文件中直接导入目标图片打印验证:

import testimage from "你的图片路径";
console.log(testimage); // 正常会打印出可访问的资源路径字符串

如果打印结果是undefined,说明导入路径填写错误,调整相对路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:06:06