2 回答
TA贡献1859条经验 获得超6个赞
在您定义为的对象中:
{
icon: "<TwitterIcon />",
title: "title 1",
desc: "desc 1",
}
不要使用"<TwitterIcon />"它总是返回一个字符串,而是使用TwitterIcon:
{
icon: TwitterIcon,
title: "title 1",
desc: "desc 1",
}
最后,在需要的地方调用它,如下所示:
const AnotherComponent = ({ ...data}) => {
return (
{data[1].map(item => (
<div><item.icon /></div> // HERE: check I'm calling item.icon as React Component
<div>{item.title}</div>
<div>{item.desc}</div>
))}
)
}
通过这种方式,您可以将图标传递到您想要的任何地方,而不仅仅是传递字符串。因此,当您需要渲染时,您可以将其称为组件。我在工作中经常这样做。
TA贡献1815条经验 获得超10个赞
我认为你应该直接传递对象中的图标组件,如下所示:
const data = [
{
title: "some title",
desc: "some desc",
},
[
{
icon: <TwitterIcon />,
title: "title 1",
desc: "desc 1",
} ...
然后在index.js中你可以这样做(这样传递props会更清楚):
const Homepage = () => {
return (
<AnotherComponent data={data} />
)
}
现在在AnotherComponent.jsx中您可以执行以下操作:
const AnotherComponent = ({data}) => {
return (
{data[1].map(item => (
<div>{item.icon}</div>
<div>{item.title}</div>
<div>{item.desc}</div>
))}
)
}
添加回答
举报