解决Vue 给mapState中定义的属性赋值报错的问题
网络编程 2021-07-04 15:03www.168986.cn编程入门
这篇文章主要介绍了解决Vue 给mapState中定义的属性赋值报错的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
1. 实践环境
Vue 2.9.6
2. 问题描述
<script> import { mapState } from 'vuex'; export default { name: "displayCount", puted: { ...mapState({ ...略 count: state => state.a.count }) }, methods: { increaseCount () { this.count = this.count + 1 } } }; </script> <style> </style>
如上,我们希望在执行increaseCount函数时,给mapstate函数中映射定义的this.count赋值,给该值增加1,结果,提示
[Vue warn]: Computed property "count" was assigned to but it has no setter.
3. 解决方案1
如下,把属性“移出mapState”,然后为属性新增get,set方法,分别用于获取值和改变值(按store状态管理规定的方式)
<script> import { mapState } from 'vuex'; export default { name: "displayCount", puted: { ...mapState({ ...略 }), count: { get() { return this.$store.state.a.count; }, set(val) { this.$store.mit("increaseCount", val); } } }, methods: { increaseCount () { this.count = this.count + 1 } } }; </script>
注意this.$store.mit("increaseCount", val);
中的increaseCount方法名称,并不是methods中定义的方法名称,而是store中定义的方法
4. 解决方案2
通过对比当前属性值和store状态值,然后根据比较结果,决定是否根据store状态管理规则更新状态值。
<script> import { mapState } from 'vuex'; export default { name: "displayCount", puted: { ...mapState({ count: state => state.a.count }) }, methods: { increaseCount () { if (this.count == this.$store.state.a.count) { this.$store.mit("increaseCount", this.count+1); } } } }; </script>
到此这篇关于解决Vue 给mapState中定义的属性赋值报错的问题的文章就介绍到这了,更多相关vue给mapState属性赋值内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
上一篇:如何解决jQuery 和其他JS库的冲突
下一篇:支付宝小程序实现省市区三级联动
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程