TypeError: Cannot read property ‘xxx‘ of null(vuex数据)

在使用Vuex进行数据渲染时,可能会遇到从接口获取的数据在渲染时显示某个属性为null,导致报错。这是因为数据是异步赋值的,DOM渲染时可能用户对象还未完全赋值。通过在模板中添加v-if判断确保数据存在时再渲染DOM,可以避免这种短暂的null错误。v-show无法解决此问题,因为它只控制显示隐藏,不阻止渲染过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

当我们使用vuex数据进行渲染的时候,有概率在渲染数据的时候显示某属性为null,数据是从接口获取的,绝对存在该数据,但是获取出来的时候却会显示报错为null,但是渲染却没有问题
在这里插入图片描述
在这里插入图片描述

解决方法

添加v-if判断,当user确定有数据时才渲染dom。
ps: v-show不行

原因

当我们从vuex异步获取数据的时候,数据不是立即赋值,而是先声明,而DOM渲染的时候,可以获取到最初定义的user,但是user为一个空对象,user里面的属性暂时未被赋值,这时候读取user对象上的info属性为空值,就会造成报错,但是这个瞬间时很短暂的,所以我们可以看到正常的数据渲染在页面上,但还是会报错,这时候我们在外边添加一层判断,当数据未被赋值的时候,不进行读取数据,这样就可以避免报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值