原因:一个计算属性,如果没有设置 setter,也就是传入的是一个函数,或者传入的对象里没有 set 属性,当你尝试直接改变这个计算属性的值,都会报这个错误,计算属性默认只有getter
把computed中的 organizationvalue 属性改成如下格式
1 organizationvalue: { 2 get: function () { 3 if (this.isorganId) { 4 return this.changedivcode.organId 5 } else { 6 return this.demovalue 7 } 8 }, 9 set: function (v) { 10 this.demovalue = v 11 } 12 }
computed VS watch
computed比较适合的场景是多个数据影响一个数据,比如商品总价随着商品数量及商品种类的影响
watch比较适合的场景是一个数据影响多个数据,比如监控路由、input输入框的值特殊处理等等