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

React中如何将TMDB API的流派ID转换为对应流派名称?

如何在React中将TMDB电影流派ID转换为名称字符串?

首先你需要维护一份流派ID与名称对应关系的数组(可以从TMDB官方文档获取完整列表,或基于你提供的示例扩展):

const genreList = [
  { id: 18, name: "drama" },
  { id: 12, name: "adventure" },
  { id: 53, name: "horror" },
  // 按需添加更多流派
];

为了提升ID查找效率,推荐把数组转换成键值对对象:

const genreMap = genreList.reduce((map, genre) => {
  map[genre.id] = genre.name;
  return map;
}, {});

接下来修改你的ResultUI组件,完成ID到名称的转换:

const ResultUI = ({ film }) => {
  // 定义流派映射(可提取到组件外部复用)
  const genreList = [
    { id: 18, name: "drama" },
    { id: 12, name: "adventure" },
    { id: 53, name: "horror" },
  ];
  const genreMap = genreList.reduce((map, genre) => {
    map[genre.id] = genre.name;
    return map;
  }, {});

  // 将流派ID数组转换为名称数组
  const genreNames = film.genre_ids.map(id => genreMap[id] || "Unknown");

  return (
    <div className="single_result_container">
      <img
        src={`https://www.themoviedb.org/t/p/w1280/${film.poster_path}`}
        alt={film.title || film.name}
      />
      <div className="bio">
        <p className="title">{film.title || film.name}</p>
        <p>{film.overview}</p>
        <p>{film.vote_average}</p>
        {/* 渲染逗号分隔的流派名称 */}
        <p>{genreNames.join(", ")}</p>
      </div>
    </div>
  );
};
export default ResultUI;

额外提示:

  • 若流派列表较长,建议把genreList和genreMap移到组件外部,避免每次渲染重复生成,优化性能。
  • || "Unknown"用于处理未匹配到的ID,防止页面显示undefined。
  • 使用join(", ")把数组转为字符串,让显示效果更整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:39:34