javascript - 反应:通过字典传递反应图标?
问题描述
我有一个辅助数据文件来减少一个组件中的代码,因此我使用了一个filteringOptionData.ts
具有以下结构的外部文件:
import styled from 'styled-components';
import { FaTaxi } from 'react-icons/fa';
export const TaxiIcon = styled(FaTaxi)``;
export default [
{
icon: TaxiIcon,
title: 'general use',
path: '/ads/general-use/',
},
{
icon: TaxiIcon,
title: 'taxi',
path: '/ads/taxi/',
},
{
icon: TaxiIcon,
title: 'nominal',
path: '/ads/nominal/',
},
{
icon: TaxiIcon,
title: 'for electric cars',
path: '/ads/electric-cars/',
},
{
icon: TaxiIcon,
title: 'for historic cars',
path: '/ads/historic-cars/',
},
];
当我尝试循环此数组并获取图标时,我收到此错误:
Uncaught Error: Objects are not valid as a React child (found: object with keys {$$typeof, render, attrs, componentStyle, shouldForwardProp, foldedComponentIds, styledComponentId, target, withComponent, warnTooManyClasses, toString}). If you meant to render a collection of children, use an array instead.
这就是我试图获取图标的方式:
{filterTab.title === 'type' && (
<FilterTypes>
{filteringOptionData.map((filter, i) => (
<FilterOptionWrapper key={i}>
{filter.icon}
<FilterOptionTitle>{filter.title}</FilterOptionTitle>
</FilterOptionWrapper>
))}
</FilterTypes>
)}
解决方案
只需将图标更新为如下所示:
export default [
{
icon: <TaxiIcon />,
title: 'general use',
path: '/ads/general-use/',
},
...
]
推荐阅读
- android - android view getWidth() 即使在 onPreDraw() 中也返回 0
- html - Swift - 在同一个 web 视图中切换多个 (x)html 文件
- r - 将 bigquery 导入 rstudio 的问题
- c# - 如何模拟 IServiceProvider 并仍然允许泛型类型的 CreateInstance?
- html - 我们如何使固定左侧导航栏旁边的容器响应?
- python - 如何找出每个唯一键的趋势。数据框
- ms-access - 移动到字符串末尾的下一个控件
- python - 如何让 libdrmaa.so 使用本地安装的 GLIBC?
- gstreamer - Gstreamer:当动态添加管道中的元素之一时,“src”元素任务进入暂停状态
- java - Java:在 Jar 中打开 xml-File。无法打开它