动态获取组件的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是必要的。

 

posted @ 2020-03-25 11:38  Black兔斯基  阅读(752)  评论(0编辑  收藏  举报