uniapp使用render报错函数[Vue warn]: Error in beforeCreate hook: “TypeError: Cannot read property ‘_i‘ of

本文档描述了在Vue应用中尝试通过`render`函数动态渲染组件时遇到的问题,即在使用`$createElement`创建组件时缺少`attrs`属性导致的错误。为了解决这个问题,提出了在调用`$createElement`时在第二个参数中添加`attrs`属性的解决方案,从而成功将组件属性传递给组件并避免错误的发生。
摘要由CSDN通过智能技术生成

需求

期望通过数组对象,动态渲染出页面组件

方法

使用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属性
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值