type VNode = ReactElement & { type: { name: string } };
React.Children.map(children, (child) => {
const vNode = child as VNode;
console.log(vNode);
console.log(vNode.type.name);
})
可以看到虚拟dom上的type属性上可以看到标签的名字
但是在打包以后name属性的值却发生了变化,这几导致了一系列的bug

上图是组件打包后的效果,组件的名字发生了变化,这也是我遇到的bug的原因
正确的处理方法思路
提前将子组件的标签名定义好,放到defaultProps中,父组件在遍历子组件虚拟dom时可以从子组件的虚拟dom上的props上面获取子组件的标签名
版权声明:本文为weixin_46787337原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。