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

ReactJS中img src不响应 电影海报无法正常显示问题排查

故障原因

海报无法渲染是两处代码错误直接导致的:

  • Array.map 回调使用大括号包裹逻辑时,没有显式返回<img>节点,React无法获取待渲染的内容,不会生成对应的图片DOM
  • 拼接图片src地址时错误使用单引号包裹模板字符串,模板语法仅在反引号()包裹的字符串中生效,使用单引号时${变量}`会被识别为普通文本,最终拼接出的图片地址完全无效。

另外你的列表渲染缺少必填的key属性,会触发React控制台警告,部分TMDB返回的影片没有name字段、只有title字段,直接取movie.name会导致alt属性为空。

修正后代码
import React, { useEffect, useState } from 'react';
import axios from './axios';
const base_URL = "https://image.tmdb.org/t/p/original";
function Row({title, fetchUrl}) {
    const [movies, setMovies] = useState([]);
    useEffect(() => {
        async function fetchData() {
            const request = await axios.get(fetchUrl);
            setMovies(request.data.results);
            return request;
        }
        fetchData();
    }, [fetchUrl]);

  return (
    <div className="row">
      <h2>{title}</h2>
      <div className="row__posters">
        {movies.map(movie => {
          return (
            <img
              key={movie.id}
              src={`${base_URL}${movie.poster_path}`}
              alt={movie.name || movie.title}
            />
          )
        })}
      </div>
    </div>
  )
}
export default Row

替换代码后刷新页面即可正常加载海报。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:15:31