动态获取组件的props 深坑
for (let propValue in elComponentData.props) { let param = {} param["propName"] = propValue; //获取props的类型 let tpyeName = elComponentData.props[propValue].type.name; praram["type"] = typeName; }
组件下的props设置如下
props:{ input_pageindex:Number, input_pagesize:Number, output_total:Number, }
这样读取好像没什么问题,循环应该可以读取到属性名称和类型了,但是报错了,
props[propValue].type.name 报错了,因为读取propValue,但是props的列表中没有该值。
但是在浏览器调试中,我确实也是看到了各个props都在列表中,但是就是读取不到。我之前的怎么就能读取到,现在不行了?
后来无意中发现有些属性我是有设置tpye这个选项的。我之前能读取到,是有设置type值的,难道是这个值的问题,修改了props中的设置如下:
input_pageindex:{tpye:Number}
!!!正常读取了
官方对type的字段说明是: 对传入的数据类型进行验证
第一个写法也是对类型的验证,不知道两者的区别是什么?新人没搞懂。
总之要动态获取,设置type是必要的。
即使是尽在眼前的风景,每踏出一步,都会是一个新世界。