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

React中通过字典传递react-icon渲染时报对象无效错误如何解决?

问题原因

你存入filteringOptionData.ts数组的icon字段是styled-components生成的React组件类型对象,不是已经完成渲染的React元素。直接将组件对象作为子元素插入JSX时,React无法将原生JS对象识别为合法的可渲染节点,因此抛出对应报错。

解决方法

有两种可行的修改方案,按需选择即可:

  • 方案1:修改渲染逻辑,将组件作为标签调用
    把渲染代码里的{filter.icon}修改为组件调用的格式,就可以正常渲染,也可以按需传入大小、颜色等自定义props:
    {filterTab.title === 'type' && (
       <FilterTypes>
          {filteringOptionData.map((filter, i) => (
          <FilterOptionWrapper key={i}>
             <filter.icon size={16} color="#222" />
             <FilterOptionTitle>{filter.title}</FilterOptionTitle>
           </FilterOptionWrapper>
           ))}
       </FilterTypes>
    )}
    
  • 方案2:修改数据定义,直接存入渲染完成的React元素
    不需要修改原有渲染逻辑,只要调整filteringOptionData.ts里的数组定义,给TaxiIcon加上尖括号即可:
    export default [
      {
        icon: <TaxiIcon />,
        title: 'general use',
        path: '/ads/general-use/',
      },
      // 其余条目同理修改icon字段即可
    ]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:21:03