为了账号安全,请及时绑定邮箱和手机立即绑定

关于 reference 的问题,需要老师帮忙解答

按教程中的写法(如下),item.checked 属性设置后,页面上class没有刷新,从console log里面看每次click事件后checked属性是会更新的,但是页面效果并没有刷新。知道下一次有data中的数据更新的话,这里绑定checked属性的class也会更新。

selectedProduct: function(item){
      if(typeof item == 'undefined'){
        Vue.set(item, 'checked', true);
        // this.$set(item, "checked", true);
      }
      else {
        item.checked = !item.checked;
      }
    },

然后google了一下,貌似reference不对导致,修改了以后效果正常了。修改后不传入item,而是传入item的index,通过index索引到对应的product,再设置并修改checked属性。

selectedProduct: function(index){
      if(typeof vm.productList[index].checked == 'undefined'){
        Vue.set(this.productList[index], 'checked', true);
      }
      else {
        this.productList[index].checked = !this.productList[index].checked;
      }
    }

虽然改对了,但是原理不太清楚,希望老师来解答一下。

正在回答

2 回答

这个写错了,是判断它的属性是否存在,

if(typeof item == 'undefined')应该写成if(typeof item.checked == 'undefined')

0 回复 有任何疑惑可以回复我~

差别在于第一个案例 判断错了if(typeof item == 'undefined')??你没有判断checked 属性。你写漏了吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
使用vue2.0实现购物车和地址选配功能
  • 参与学习       96865    人
  • 解答问题       446    个

本视频教程结合案例完整贯穿各个知识点,轻松玩转vue2.0框架

进入课程

关于 reference 的问题,需要老师帮忙解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信