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

React开发中如何获取对象数组内的属性值实现图片alt标签动态赋值

解决方案

你需要把ContentData.js中的contentAll改为可接收参数的函数,在Content.js渲染时将同层级的name值传入即可实现动态赋值,改动如下:

第一步:修改ContentData.js

将静态的contentAllJSX结构改为接收name参数的函数,直接把参数赋值给img的alt属性即可:

import React from "react";

const listsData = [
  {
    id: 1,
    name: "My alt tags",
    text: (
      <>
        <p>Lorem Imsum</p>
      </>
    ),
    mainContent: [
      {
        // 改为函数接收name参数
        contentAll: (name) => (
          <>
            <p>
              Lorem Ipsum is simply dummy text of the printing and typesetting
              industry.
            </p>
            <img
              alt={name}
              src="https://images.unsplash.com/photo-1637704758245-ed126909d374?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxlZGl0b3JpYWwtZmVlZHwxNHx8fGVufDB8fHx8&auto=format&fit=crop&w=500&q=60"
            />
          </>
        )
      }
    ]
  }
];

export default listsData;

第二步:修改Content.js

渲染contentAll时调用函数,传入当前遍历项的name属性:

import React, { Component } from "react";
import mainListsItems from "./ContentData";

class Content extends Component {
  render() {
    const myContent = mainListsItems.map((lists, k) => (
      <>
        <div key={k}>{lists.text}</div>
        {lists.mainContent.map((subcontent, j) => {
          // 调用contentAll函数传入对应name值
          return <div key={j}>{subcontent.contentAll(lists.name)}</div>;
        })}
      </>
    ));

    return <>{myContent}</>;
  }
}

export default Content;

该方案适配多列表项的场景,每个列表项下的图片都会自动读取自身对应层级的name值作为alt属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:06:04