今天发现原来写的页面的bug

总的来说就有一个组件,有加减号和次数显示,第一次点击加号会用set给food对象添加属性count,然后再次点击加号就会count++,这没毛病。

if (!this.food.count) {
          Vue.set(this.food, 'count', 1);
        } else {
          this.food.count++;
        }

但是还有一其他组件的一个按钮,也是具有加号的功能,但是用这个按钮成功添加属性后,再点击第一个组件的加号按钮,但是视图没有改变,console.log(this.food.count)发现数据的确变了.

找了大半天不知道哪里有问题。

最后的解决方案:把代码改成

if (!this.food.count) {
          Vue.set(this.food, 'count', 1);
        } else {
          this.food.count++;
          let foodCount = this.food.count;
          Vue.delete(this.food, 'count');
          Vue.set(this.food, 'count', foodCount);
        }

因为试了大半天发现当我使用delete的时候,视图更新了……

但我感觉这样的解决方法是不对滴,不过现在就这吧,等以后对Vue的理解更深了以后再修改。


Logo

前往低代码交流专区

更多推荐