vuex 对象嵌套属性的修改 mutations set 很方便的写法

需求:一个对象

const state = {user: {verify: {state: 0}}
}

我需要使用类似this.set({ 'user.verify.state': 1 })这种写法直接获取或修改state[user.verify.state]的值。不知道别人怎么写的,我的写法如下:

const mutations = {set(state, params) {Object.keys(params).forEach(key => {// 需要替换的值const val = params[key];const arr = key.split(".");if (arr.length > 1) {let obj = state;while ((arr.length - 1) && (obj = obj[arr.shift()]));obj[arr[0]] = val} else {state[key] = val}})}
}

这样想要修改state中任意一个对象,就非常方便了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse/myeclipse中快捷键 Ctrl+shift+down/up 出现屏幕颠倒的解决方法

1.原因:快捷键被占用 2.解决 如果是被其它软件占用,则修改其它软件的快捷键。 查看快捷键是否被占用工具:http://download.csdn.net/download/muyeju/9999443    如果是Integer占用,则禁用快捷键,桌面右击->图形选…

android 获取图片主色调

在build.gradle添加依赖 compile com.github.florent37:glidepalette:1.0.6 使用 TextView tvColor(TextView) findViewById(R.id.testte); ImageView imageView (ImageView)findViewById(R.id.testimage); tvColor.setText(style); ImageManager.loadAndPalette(MainActivity…

基于B/S架构的故障模型

基于B/S架构的故障模型 基于B/S架构的软件进行的测试,主要进行的有功能测试、性能测试、安全性测试、配置和兼容性测试、可用性测试、安装部署测试、用户手册、在线帮助测试等。下列分别介绍这些测试的内容。 1、 功能…

mongoose 更新元素 DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany

我一开始的写法: const updOne await this.update({ _id: verify_id }, {$set: {// 认证通过,状态设置为1state: 1,// 审核操作人verify_user,verify_at: Date.now()} });使用mongoose更新元素值,报错了DeprecationWarning: collection.update is depr…

mongodb $unwind 聚合管道

$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。 需求: {"_id" : ObjectId("5951c5de567ebff0d5011fba"),"name" : "陈晓婵","address" : "北京朝阳区&q…

QC无法启动,实战记录

今天上午QC还用得好好的,下午就突然打不开了,急了,服务重启了一遍还是不行。最后将错误信息截下来,仔细研究,同时也要感谢测试群的朋友们的帮忙,终于找到了一些方向。 下面把错误信息贴出来: …

android butterknife使用详解

添加依赖 compile com.jakewharton:butterknife:8.6.0 annotationProcessor com.jakewharton:butterknife-compiler:8.6.0 //下载最新黄油刀 implementation com.jakewharton:butterknife:10.2.0 annotationProcessor com.jakewharton:butterknife-compiler:10.2.0 …

工作108:swiper使用

<!--首页管理--> <template><div><el-card><h1>等待处理</h1><div style"width: 100%;height: 200px"><swiper ref"mySwiper" ><swiper-slide v-for"(item,index) in task"><el-butt…

背景图片生成网站收集

https://pissang.github.io/little-big-city/ 生成星球 https://alteredqualia.com/ 很多效果 http://www.decrooks.com/ 毛线球生成器

python入门-分类和回归各种初级算法

引自&#xff1a;http://www.cnblogs.com/taichu/p/5251332.html ########################### #说明&#xff1a; # 撰写本文的原因是&#xff0c;笔者在研究博文“http://python.jobbole.com/83563/”中发现 # 原内容有少量笔误&#xff0c;并且对入门学友缺少一些…

Git Bash下载安装,git命令下载项目,上传android项目到github步骤,以及取消项目关联Git,设置git忽略文件

设置忽略文件 1、工程下创建文件夹gitignore。push即可 *.iml .gradle /local.properties /.idea/caches /.idea/libraries /.idea/modules.xml /.idea/workspace.xml /.idea/navEditor.xml /.idea/assetWizardSettings.xml .DS_Store /build /captures .externalNativeBuild …

软件测试是找BUG,不是找茬

做测试久了&#xff0c;经常会有一些感悟&#xff0c;最近在51上看到一贴&#xff0c;说出了我的心声&#xff0c;把我一直想写却一直以时间为借口为由拖着未写的心声写出来&#xff0c;摘抄了部分过不&#xff0c;一起纪念测试的年代&#xff0c;测试的心声。测试好象一直会被…

比较精确的js倒计时实现

// 传入需要倒计时的秒数countDown(times) {// 时间间隔 1秒const interval 1000;// 计算时间&#xff0c;转化为毫秒let ms times * 1000;let count 0;const startTime new Date().getTime();const endTime startTime ms;let timeCounter;timeCounter setTimeout(count…

java 如何让循环结束,跳过某个条件,跳出当前的多重嵌套循环

当数据比较庞大的时候&#xff0c;需要循环遍历某个数据的时候可用 for (int ab 0;ab<10000;ab){if (ab 7){//当找到7的时候&#xff0c;结束循环Log.v("map","..ab 7....11......"ab);break;}else {Log.v("map","......11..else....&qu…

服务器虚拟化之-——VMware组件与功能。

最近公司提出帮服务器虚拟化&#xff0c;以前也没接触过&#xff0c;在网上搜了一通&#xff0c;查看了一少资料&#xff0c;感觉现在对虚拟化有了一些了解&#xff0c;在售前我们要出方案&#xff0c;需要对虚拟化进行一个整体评估&#xff0c;这步先省略&#xff0c;后期再补…

vue 获取验证码倒计时组件

之前写过一个计时函数&#xff0c;有计算误差&#xff0c;但是验证码的60秒倒计时可以忽略这一点点误差。直接上代码。 <template><div class"captcha-row"><input class"captcha-input" placeholder"输入验证码" auto-focus …