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

React中map遍历配置数组渲染FontAwesome图标不显示如何解决?

解决方案

问题根因

FontAwesomeIcon组件的icon属性要求传入的是从图标库导入的图标实例对象,你当前contactInfoTop数组中存储的是字符串类型的图标名称,和组件要求的入参类型不匹配,因此无法正常渲染图标。

修改方法

方案一:直接修改数组配置(最简便)

将数组中icon字段的引号去掉,直接引用你已经提前导入的图标变量即可,修改后的数组代码如下:

const contactInfoTop = [
    {
        icon: faMapMarkerAlt,
        topic: "Our Location",
        content: ["SoHo 94 Broadway St New York, NY 1001"]
    },
    {
        icon: faPhoneAlt,
        topic: "Phone Number",
        content: ["+254 700 000 000", "+254 700 000 000"]
    },
    {
        icon: faEnvelope,
        topic: "Our Emails",
        content: ["email1@mail.com", "email2@mail.com", "email3@mail.com"]
    },
    {
        icon: faFax,
        topic: "Our Fax", // 原配置此处topic写错为Our Location,可按需修正
        content: ["+254 20 000 0000"] // 原配置此处内容为地址,可按需调整为传真号码
    }
]

修改后不需要改动其他代码,原有FontAwesomeIcon组件的写法可以保持不变,图标即可正常渲染。

方案二:新增图标映射表(适用图标名必须为字符串的场景)

如果你的业务场景要求必须把图标名存储为字符串(比如配置是从后端接口返回的),可以新增一个映射表关联字符串和实际的图标实例:

// 在导入图标后新增映射表
const iconMap = {
    faMapMarkerAlt,
    faPhoneAlt,
    faEnvelope,
    faFax
}

渲染时把FontAwesomeIcon组件的icon属性改为从映射表取值即可:

<FontAwesomeIcon
    icon={iconMap[element.icon]}
    className="contact-form-icon"/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:15:06