Computed property "xxxx" was assigned to but it has no setter


有时候我们在运行我们的项目的时候会出现如下警告

原因:一个计算属性,如果没有设置 setter,也就是传入的是一个函数,或者传入的对象里没有 set 属性,当你尝试直接改变这个计算属性的值,都会报这个错误,计算属性默认只有getter

解决:把computed中的route属性改成如下格式

computed: {
  route () {
    // getter
    get: function () {
      return this.$store.state.curTab.route
    },
    // setter
    set: function (newValue) {
      this.$store.state.curTab.route = newValue
    }
 }

 

computed  VS  watch 

computed比较适合的场景是多个数据影响一个数据,比如商品总价随着商品数量及商品种类的影响

watch比较适合的场景是一个数据影响多个数据,比如监控路由、input输入框的值特殊处理等等

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM