项目过程中经常遇到如下问题:

[Vue warn]: Computed property "CurrentStep" was assigned to but it has no setter. 意思是:计算属性 CurrentStep 被赋值了,但此它并未定义 set方法 ,故出现上面错误提示。

vue官网中关于计算属性的示例是这样的:

var vm = new Vue({data: { a: 1 },computed: {// 仅读取, 计算属性的 getteraDouble: function () {return this.a * 2},// 读取和设置, 计算属性的 getter 和 setteraPlus: {get: function () {return this.a + 1},set: function (v) {this.a = v - 1}}}
})
vm.aPlus   // => 2
vm.aPlus = 3
vm.a       // => 2
vm.aDouble // => 4复制代码

可以看出:aDouble计算属性默认只有get函数,仅支持读取;而aPlus计算属性声明了get 和 set函数,支持读取和设置。故当出现上错误提示时,只需按照aPlus计算属性声明方式修正即可解决问题。

注意:如果你为一个计算属性使用了箭头函数,则 this 不会指向这个组件的实例,不过你仍然可以将其实例作为函数的第一个参数来访问。:

computed: {aDouble: vm => vm.a * 2
}
复制代码

不过我还有个问题:如果computed中依赖的不是data中的属性,而是prop中的属性,我们又应该如何处理呢?

答案:由于vue中prop的属性是父组件传递给子组件值,我们并不建议直接操作prop中的属性。你可以在data中添加一个新的映射属性(作为prop属性的映射),并使用watch达成映射。

附上代码如下:

props: ['step'],
data(){return {stepMap: null}
},
computed:{currentStep:{get(){return this.stepMap},set(v){this.stepMap = v}}
},
watch: {step(v) {this.stepMap = v}
}
复制代码

希望能帮助大家,thanks !!!

[Vue] Computed property XXX was assigned to but it has no setter.相关推荐

  1. vuex报错Computed property “xxx“ was assigned to but it has no setter.

    当使用vuex存储数据时,常常有这样的需求:输入框显示并动态修改state中的数据. 我们第一个反应就是使用v-model直接绑定state中的数据,虽然确实可以显示和修改,但是控制台会报错,所以不能 ...

  2. Computed property XXX was assigned to but it has no setter

    报错视图: 原因: 组件中v-model="XXX",而XXX是vuex state中的某个变量 vuex中是单项流,v-model是vue中的双向绑定,但是在computed中只 ...

  3. Computed property “XXX“ was assigned to but it has no setter

    报错原因:vuex 1.组件中v-model="XXX",而XXX是vuex state中的某个变量 2.vuex中是单项流,v-model是vue中的双向绑定,在computed ...

  4. Vue warn]: Computed property XXXl was assigned to but it has no setter.错误

    Vue warn]: Computed property "XXXl" was assigned to but it has no setter.错误 解决:直接修改HTML中的v ...

  5. 前端开发:Vue报错Computed property “show“ was assigned to but it has no setter的解决方法

    前言 在前端开发中,使用Vue的时候关于组件使用是非常常见的操作,而且也会遇到各式各样的问题,尤其是刚接触前端开发的开发者.本篇博文分享一下在封装关于Vue的组件的时候,通过计算属性监听父子组件传值提 ...

  6. [Vue warn]: Computed property “userInfo“ was assigned to but it has no setter.

    [Vue warn]: Computed property "userInfo" was assigned to but it has no setter. 一.报错信息 二.报错 ...

  7. vue 的计算属性报错Computed property “disa“ was assigned to but it has no setter.

    原因: vue的计算属性不能设置,只能读取 解决:

  8. vue写前端出现错误:[Vue warn]: Computed property “editableTabs“ was assigned to but it has no setter.

    源代码: computed:{//动态监控,返回tab的信息editableTabs:{get() {return this.$store.state.menus.editableTabs;}},ed ...

  9. [Vue warn]: Computed property tabs was assigned to but it has no setter.

    为什么80%的码农都做不了架构师?>>>    这种问题一般是tabs这个计算属性没有设置set方法导致该报错,因为在methods方法里面有对tabs赋值的操作.只要添加一个 se ...

最新文章

  1. java选择题答案_Java习题附答案
  2. vue-cli脚手架的.babelrc文件
  3. C语言指针用得好犹如神助!这些使用技巧值得收藏
  4. 9-13 ruby环境准备
  5. mysql 分区表 限制_Mysql分区表使用的一些限制和需要注意的地方-阿里云开发者社区...
  6. C#中的多线程:如何将函数名称传递给另一个函数来启动新线程?
  7. Win11显卡fps很低怎么办?Win11显卡fps很低的解决方法
  8. Windows核心编程_锁屏
  9. ajax只能局部刷新吗,ajax有哪几种方法可以实现局部刷新
  10. Siri 和谷歌竟然暗藏《复联4》彩蛋!
  11. 说说 PWA 和微信小程序--Progressive Web App
  12. python 爬虫论_python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)
  13. 百度运维部农场,绿色畅想
  14. 基于VUE和Node.js的医院挂号预约管理系统
  15. 计算机管理文件破坏怎么办,文件损坏,教您电脑文件损坏怎么修复
  16. 【定位设备】蓝牙信标接近距离的计算方式及其部署原则
  17. VMware Workstation虚拟机设置联网(Linux)
  18. (4)数据分析-正态性检验与方差齐性检验
  19. PDFbox的head is mandatory问题
  20. 如何在VMware上快速安装ROS

热门文章

  1. Oracle密码过期ORA-28001
  2. android SDK安装以及环境变量配置
  3. vb listview扁平表头的列表框
  4. 搜狗Q1每天进账1886万,输入法日处理6亿请求成中国最大语音App
  5. 自闭症患者很难读懂他人情绪?情绪机器人来帮忙
  6. 英语每日阅读---1、科学美国人60秒:如果觉得唱歌很难 那就吹口哨吧
  7. 任意目录下启动tomcat
  8. Codeforces Round #321 (Div. 2)
  9. centos安装过程中gpt报错解决方案
  10. Ubuntu11.10 源码编译 Nginx