uniapp 控制台报错Can not set property ‘xxx‘ of undefined情况分析以解决方法

在uniapp开发中遇到真机调试控制台报错,涉及滚动事件处理。错误源于DOM加载时无法获取值。尝试setTimeout和this.$nextTick()未果,最终通过在事件处理函数中加入try-catch块成功消除报错,且代码运行正常,经过不同设备测试稳定。

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

        最近在写代码时遇到一个真机调试时控制台的一个报错,如图:

        我是在uniapp里面用 写的

         本人在网上找了许多资料,有些是说this指向有问题,需要给this赋值给其它变量;也有说是“scrollLeft”初始值设置有问题;不过本人尝试了网上许多的办法都无法消除这个报错。

        后面经过我多方面的测试,发现原来是页面DOM刚加载完时,获取不到值的原因,之后我尝试过setTimeout延时器和this.$nextTick()两个方法,虽然报错没了,但是却跟我所写的代码出现了冲突问题 ,只得放弃这两种办法(出现类似报错的也可以先试试这两种),最后在我在函数调用的方法里使用try、catch后成功将报错消除了,最后经过浏览器测试和低性能手机测试都没有出现问题,以下是我的代码片段

原报错代码:

            changeScroll(cur) {
                if (this.swiperData.length > 0) {
                        this.Scroll(cur)

                }
            }

解决报错代码

			changeScroll(cur) {
				if (this.swiperData.length > 0) {
					try {
						this.Scroll(cur)
					} catch (e) {
						console.log(e)
					}
				}
			}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值