React 组件的 Props 接收一个 config 数组,config 数组里面是 React 组件或者自定义配置;如果是 React 组件则直接渲染,否则按照配置项进行渲染。
目前我是通过typeof
来判断Item
的类型,请教各位有没有更优雅的方法呢?
代码如下:
interface ItemConfig {
name: string,
type: string
}
type Config = ItemConfig | React.FC;
interface XProps {
config: Config[]
}
const Components = ({ config } : XProps) => {
return (
<div>
{
config.map(Item => {
if (typeof Item === "function") {
if (React.isValidElement(Item)) {
// 如果是 React 组件
return <Item />;
}
return null;
}
// 如果是自定义配置
...
return ...
})
}
</div>
);
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.