Vue 给mapState中定义的属性赋值报错的解决方案
Vue 给mapState中定义的属性赋值报错的解决方案
by:授客 QQ:1033553122
1. 实践环境
Vue 2.9.6
2. 问题描述
<script>
import { mapState } from 'vuex';
export default {
name: "displayCount",
computed: {
...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",
computed: {
...mapState({
...略
}),
count: {
get() {
return this.$store.state.a.count;
},
set(val) {
this.$store.commit("increaseCount", val);
}
}
},
methods: {
increaseCount () {
this.count = this.count + 1
}
}
};
</script>
注意:this.$store.commit("increaseCount", val);中的increaseCount方法名称,并不是methods中定义的方法名称,而是store中定义的方法
4. 解决方案2
通过对比当前属性值和store状态值,然后根据比较结果,决定是否根据store状态管理规则更新状态值。
<script>
import { mapState } from 'vuex';
export default {
name: "displayCount",
computed: {
...mapState({
count: state => state.a.count
})
},
methods: {
increaseCount () {
if (this.count == this.$store.state.a.count) {
this.$store.commit("increaseCount", this.count+1);
}
}
}
};
</script>
Vue 给mapState中定义的属性赋值报错的解决方案的更多相关文章
- worker中加载本地文件报错的解决方案
如果在一个swf的主线程中加载文件时,报安全沙箱的错误, 网上有诸多的解决方案.但是如果在一个worker中加载本地文件报类似如下的错误: *** 安全沙箱冲突 *** SecurityError: ...
- 在eclipse中引入jquery.js文件报错的解决方案
从官方下载的jquery.js在myeclipse始终用个大大的红叉,看着很不爽,如何解决呢:jquery.js在myeclipse中报错:jquery.js -> 鼠标右键 -> MyE ...
- 安卓工程中定义的app_name等报错解决办法 工程上有叹号
类似于"app_name" is not translated in af, am, ar, be, bg, ca, cs, da, de, el, en-rGB, es, es- ...
- WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了
原文:WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4 ...
- Vue 改变数组中对象的属性不重新渲染View的解决方案
Vue 改变数组中对象的属性不重新渲染View的解决方案 在解决问题之前,我们先来了解下 vue响应性原理: Vue最显著的一个功能是响应系统-- 模型只是一个普通对象,修改对象则会更新视图.受到ja ...
- vue.js 中使用(...)运算符报错的解决方法
vue.js 中使用(...)运算符报错的解决方法 Syntax Error:Unexpected token(XX:X) }, computed:{ ...mapGetters([ 'pageSiz ...
- const变量赋值报错分析
const变量赋值报错分析 const变量赋值报错 从变量到常量的赋值是合法C++的语法约定的, 如从char 到const char顺畅: 但从char **到 const char **编译器就会 ...
- 【jQuery】jquery中 使用$('#parentUid').attr(parentUid);报错jquery-1.11.3.min.js:5 Uncaught TypeError: Cannot read property 'nodeType' of undefined
jquery中 使用$('#parentUid').attr(parentUid);报错jquery-1.11.3.min.js:5 Uncaught TypeError: Cannot read p ...
- 关于Entity Framework中的Attached报错相关解决方案的总结
关于Entity Framework中的Attached报错的问题,我这里分为以下几种类型,每种类型我都给出相应的解决方案,希望能给大家带来一些的帮助,当然作为读者的您如果觉得有不同的意见或更好的方法 ...
- SQL server 维护计划中 “清除维护任务” 执行报错
SQL server 维护计划中 “清除维护任务” 执行报错,错误如下: 执行查询“EXECUTE master.dbo.xp_delete_file 0,N'',N'',N'2019...”失败,错 ...
随机推荐
- acedCommand 之使用镜像命令
ads_name ent; ads_point pt2, pt3; if (acedSSGet(NULL, NULL, NULL, NULL, ent) != RTNORM) { return; } ...
- CSS操作——背景属性
1.background-color(背景颜色) 页面的背景颜色有四种属性值表示,分别是transparent(透明),RGB十进制颜色表示,十六进制颜色表示和颜色单词表示. 属性使用: /* bac ...
- Jenkins获取gitlab源代码
Jenkins获取gitlab源代码 Jenkins权限获取 在日常工作做由于Jenkins启动用户是Jenkins,在执行脚本时系统命令是无法让Jenkins执行的,如果需要Jenkins权限有两种 ...
- Yii AR事务操作
Yii Ar事务操作,示例代码如下: $model=Post::model(); $transaction=$model->dbConnection->beginTransaction() ...
- swift_slowAlloc Crash 分析
一.Crash详情 Crash类型 exception EXC_BREAKPOINT (SIGTRAP) reason EXC_BREAKPOINT EXC_ARM_BREAKPOINT fault_ ...
- NOIP模拟71
T1 签到题 解题思路 每个点的度数对于 \(c\) 取 \(\bmod\) 有余数答案的贡献就加一. 证明太难,略.... code #include <bits/stdc++.h> # ...
- 一个问题:六位八段数码管(Verilog)
[基本信息] 需求:verilog程序,显示任意六位字符或数值,包含点号,且能够按需点亮位数.(学习篇) 芯片型号:cyclone Ⅳ EP4CE10F17C8 数码管属性:六位.八段 [最终成果图] ...
- 【论文笔记】SegNet
[深度学习]总目录 SegNet是Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架.SegNet运用编码-解码结构和最大池化索引进行上采样,最主 ...
- [经验分享] VPS安装爱快
前言:本人是作VPN服务端用,配合域名分流,蛮好用.参考1.送一个阿里云腾讯云安装爱快3.X的文档https://bbs.ikuai8.com/thread-97314-1-1.htmlVPS存在的问 ...
- Redis 常用的数据结构简介与实例测试【Redis 系列二】
〇.都有哪些数据结构? Redis 提供了较为丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合).Zset(有序集合). 随着 Redis 版本的 ...