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

React组件遍历数组仅渲染图片URL而非图片的问题求助

问题:React遍历数组仅显示图片URL,不渲染图片

在React项目主页遍历数组时,迭代功能正常,但图片只显示URL字符串,无法渲染出图片。以下是当前使用的代码:

import './App.css';
const App = () => {
  const faucets = [
    { id: 1, title: 'New Leaf Carbon Project', subtext: "Tasmanian Land Conservatory. Tasmania, Australia", imageUrl: './assets/Carbon Faucet/Projects/TLC-Five-Rivers-Reserve-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/CERLogo.png' },
    { id: 2, title: 'Afognak Island Forest Preservation', subtext: "South Pole. Alaska, United States", imageUrl: './assets/Carbon Faucet/Projects/Afognak-Island-Forest-Preservation-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/South Pole Logo.png' },
    { id: 3, title: 'Crow Lake Wind Farm', subtext: "South Pole. South Dakota, United States", imageUrl: './assets/Carbon Faucet/Projects/Crow-Lake-Wind-Farm-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/South Pole Logo.png' },
    { id: 4, title: 'Bac Lieu Wind Farm', subtext: "South Pole. Vietnam", imageUrl: './assets/Carbon Faucet/Projects/Bac-Lieu-Wind-Farm-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/South Pole Logo.png' },
  ]
  return (
    <div>
      {faucets.map(({title, subtext, imageUrl, logo}) => (
      <div className="Project-Faucets">
        <div className="Project-Banner">
          {imageUrl}
        <div className="Project-Logo">
          {logo}
      </div>
      <div className="Project-Title">{title}</div>
      <div className="Project-Subtext">{subtext}</div>
    </div>
    <div className="Project-Content">
    </div>
  </div>
    ))}
  </div>
  );
};
export default App;

问题原因

直接在JSX中输出imageUrl和logo的字符串值,浏览器会将其视为普通文本渲染,而非图片。必须使用<img>标签来加载图片资源。

修正后的代码

将直接输出URL的部分替换为<img>标签,通过src属性传入图片路径,同时添加alt属性提供无障碍替代文本;另外补充key属性避免React列表渲染警告:

import './App.css';
const App = () => {
  const faucets = [
    { id: 1, title: 'New Leaf Carbon Project', subtext: "Tasmanian Land Conservatory. Tasmania, Australia", imageUrl: './assets/Carbon Faucet/Projects/TLC-Five-Rivers-Reserve-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/CERLogo.png' },
    { id: 2, title: 'Afognak Island Forest Preservation', subtext: "South Pole. Alaska, United States", imageUrl: './assets/Carbon Faucet/Projects/Afognak-Island-Forest-Preservation-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/South Pole Logo.png' },
    { id: 3, title: 'Crow Lake Wind Farm', subtext: "South Pole. South Dakota, United States", imageUrl: './assets/Carbon Faucet/Projects/Crow-Lake-Wind-Farm-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/South Pole Logo.png' },
    { id: 4, title: 'Bac Lieu Wind Farm', subtext: "South Pole. Vietnam", imageUrl: './assets/Carbon Faucet/Projects/Bac-Lieu-Wind-Farm-Credit-Matthew-Newton_02-862x689.jpeg', logo: './assets/Carbon Faucet/Projects/South Pole Logo.png' },
  ]
  return (
    <div>
      {faucets.map(({id, title, subtext, imageUrl, logo}) => (
        <div className="Project-Faucets" key={id}>
          <div className="Project-Banner">
            <img src={imageUrl} alt="项目横幅" />
            <div className="Project-Logo">
              <img src={logo} alt="项目Logo" />
            </div>
            <div className="Project-Title">{title}</div>
            <div className="Project-Subtext">{subtext}</div>
          </div>
          <div className="Project-Content">
          </div>
        </div>
      ))}
    </div>
  );
};
export default App;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:57:19