vue中data之间数据自调用undefined的问题

本文探讨了在Vue应用中遇到的问题:在data对象内直接使用计算属性导致浏览器报错。原因是data中的数据尚未完全解析。为解决这个问题,作者建议将计算百分比的逻辑移至mounted生命周期钩子中,确保数据已正确初始化后再进行计算。通过这种方式,成功解决了数据获取和计算的同步问题。
摘要由CSDN通过智能技术生成

需求:

多个div,根据各自的num计算各自的百分比

问题:

在data中,自己调用自己的数据生成百分比浏览器报错

data(){
	return{
		{num:100},
		{num:0,percent:this.getPercent(this.totalData[1].num,this.totalData[0].num),
	}
}

这样的话,浏览器中报错
在这里插入图片描述

解析:

我认为,虽然在vue中,this是指向VueComponent的,但是data中的属性调用另一属性的时候,data中的数据还没有解析出来,因为return {}对象的时候它们中所有的数据是一起渲染解析的,所以会出现undefined问 题。

解决方案:

将赋值操作写到mounted中,最终完美解决

this.totalData[1].percent = this.getPercent(this.totalData[1].num,this.totalData[0].num)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值