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

React动态渲染图标组件报错:<ICONCAR>等标签未被识别

解决React动态渲染图标组件的报错问题

问题核心是直接用字符串作为组件名渲染不符合React规则——React会把<ICONCAR>这类字符串识别成普通HTML标签,而非你自定义的组件,所以会报未识别错误。直接写<ICONHOME>能正常显示,是因为你导入了对应的组件引用,React能识别这是自定义组件。

解决方法只需给字符串和组件做个映射关联:

  1. 导入目标图标组件
    在MyFile.tsx中先导入MyIcons里的所有需要的组件:
import { ICONCAR, ICONHOME } from './MyIcons';
  1. 创建组件映射对象
    把字符串名称和实际组件一一对应:
const IconComponentMap = {
  ICONCAR,
  ICONHOME
};
  1. 通过映射获取组件并渲染
    用x.iconName从映射中拿到真实组件,再进行渲染(注意变量名必须大写开头,这是React识别自定义组件的要求):
// 根据字符串获取对应的组件
const IconComponent = IconComponentMap[x.iconName];

// 增加容错判断,避免传入无效字符串导致报错
if (!IconComponent) {
  return null; // 也可以返回一个默认图标组件
}

// 正常渲染组件
return <IconComponent />;

额外注意:

  • 要保证x.iconName的字符串值和映射对象里的key完全匹配(比如都是大写的ICONCAR)
  • 后续新增图标时,只需在映射对象里添加对应的键值对,无需修改渲染逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:20:27