前言:购物车用到加减购物车数量的一个步进器组件,使用的是uview组件1.0版本的u-number-box。
该组件设置了一个@change事件,该事件会在页面渲染的时候触发一次,如果你在里面调用了接口,比如增加/减少购物车数量,那么每次一刷新购物车该事件就会被触发,从而导致不必要的报错。
解决方案:
在data定义一个变量用于判断是否执行调接口的逻辑:
isDo: true,
然后在@change对应事件中调用接口之前判断isDo为true就阻止,即:
if (this.isDo) return;
最后在mounted里面设置500毫秒延迟,500毫秒后设置isDo为false,那么在渲染的时候就不会触发@change里面的接口了,而且500毫秒后该接口就变成了允许触发。
mounted() { setTimeout(() => { this.isDo = false; }, 500); },
标签:box,25,触发,时间延迟,购物车,500,组件,change,isDo From: https://www.cnblogs.com/iuniko/p/17579749.html