最近在写代码时遇到一个真机调试时控制台的一个报错,如图:
我是在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)
}
}
}