需求
期望通过数组对象,动态渲染出页面组件
方法
使用render方法通过$createElement根据对象的type字段确定创建组件并将其他参数传入组件
renderParent($h,parent) {
const values = this.values
const field = parent.options.field
let value ;
if(field){
value = values[field]
}
return $h(parent.type,{
props:{options:parent.options,value:value},on:{'change:value':(val) => {this.update(field,val)}}
},parent.children ? parent.children
.map(child => {
if(typeof child === 'string') return child
if(child.type){
return this.renderParent($h,child)
}
}) : ""
)
},
结果
报如下错误:
解决
通过ceateElement创建组件时在第二个参数中添加attrs属性