【发布时间】:2022-07-01 19:38:45
【问题描述】:
我有两个数组,一个带有 react-icon 组件 -
const amenities = [
{
id: 1,
name: "Wifi",
icon: <FaWifi />
},
{
id: 2,
name: "Kitchen",
icon: <FaUtensils />
},
{
id: 3,
name: "Shower",
icon: <FaShower />
},
{
id: 4,
name: "Bath",
icon: <FaBath />
},
{
id: 5,
name: "Disabled Access",
icon: <FaWheelchair />
},
{
id: 6,
name: "Lift",
icon: <GrElevator />
},
{
id: 7,
name: "Air Con",
icon: <TiWeatherSnow />
},
{
id: 8,
name: "Downtown",
icon: <FaCity />
},
{
id: 9,
name: "Coffee Maker",
icon: <FaCoffee />
},
{
id: 10,
name: "Public Transport",
icon: <FaSubway />
},
{
id: 11,
name: "Landmarks",
icon: <FaToriiGate />
},
{
id: 12,
name: "Nice Scenery",
icon: <FaImage />
},
]
一个没有图标属性的后端来自没有图标属性
chosenAmenities: [
{ name: 'Wifi', id: 1 },
{ id: 3, name: 'Shower' },
{ name: 'Air Con', id: 7 }
]
我想知道如何创建一个新数组,根据 selectedAmenities 数组中存在的值添加正确的 react-icon 组件属性?
我已经能够像这样成功地添加一个“测试”值......
const updatedAmenitites = amenities.map(obj => ({...obj, test: "test"}));
但是,我正在努力弄清楚如何将其作为最终产品显示在前端:
updatedAmenities: [
{ name: 'Wifi', id: 1, icon: <FaWifi /> },
{ id: 3, name: 'Shower', icon: <FaShower /> },
{ name: 'Air Con', id: 7, icon: <TiWeatherSnow /> }
]
我正在使用带有 React 的 Next.js,并从 firebase 获取作为上下文的后端。
谢谢!
【问题讨论】:
-
名称和图标组件之间有什么映射关系吗?
-
映射对象时,可以使用 if 语句,如果
name是特定值,则添加相应的icon。或者,您可以创建一个查找对象,例如:{"Wifi": <FaWifi />, "Shower": <FaShower />, ...},如果这样做,您可以使用.name属性来获取相应的图标。如果您已经有此查找,您可能会发现甚至不需要添加icon属性 -
我看不出输入、输出有什么区别
标签: javascript reactjs next.js