踩坑react虚拟dom的type属性里面的name属性打包后发生变化,react获取之组件的标签名

 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版权协议,转载请附上原文出处链接和本声明。