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

React中如何使用map遍历字典仅渲染指定from字段内容

问题原因

你的代码无法正常渲染有三个核心问题:

  • 自定义的list_mails函数仅通过for循环执行了控制台打印操作,没有返回任何可被React渲染的JSX内容,调用后返回值为undefined,页面自然无法展示对应内容
  • 如果在for循环内部写return逻辑,第一次循环触发时就会直接终止整个函数,仅能返回第一条数据,无法实现全量列表渲染
  • JSX的插值大括号仅支持接收表达式,for属于流程控制语句,本身不会返回遍历生成的JSX集合,这也是你直接把for循环写在return语句中不生效的原因
修复方案

直接使用数组的map方法遍历Mails数组,遍历过程中仅提取每项的from字段返回对应JSX节点即可。注意渲染列表项时需要给每个节点配置唯一的key属性,帮助React做虚拟DOM对比更新。

修正后的核心代码如下:

const Mails = Object.freeze([
    {
        from: "Ludo",
        to: "Guillaume",
        when: "12:05:2022",
        Subject: "Absence",
        Message: "ptit tube",
        Vu : ''
    },
    {
        from: "Luda",
        to: "Guillaume",
        when: "12:05:2022",
        Subject: "Absence",
        Message: "ptit tube",
        Vu : ''
    },
]);

export const Messagerie = () => {
    return (
        <Layout title="Messagerie" loggedIn={true} accountType={parentCookies.name}>
            <Seo title="Messagerie" />
            <div>
                {Mails.map((mail, index) => (
                    <h1 key={`${mail.from}-${index}`}>{mail.from}</h1>
                ))}
            </div>
        </Layout>
    );
};

上述代码运行后会按数组顺序依次渲染Ludo、Luda两个标题,无需渲染对象的其他字段。如果你需要调整渲染样式,只需要修改map内返回的JSX结构即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 20:19:01