上一篇博客有提到直接改变vuex中的值会报错,现在详细记录一下这个错误,首先看一下错误

这是因为直接操作vuex中的数据没有通过mutations去更新state而报的错误,如果在一个组件中初始化数据赋值state中的数据,如下

 this.modelList = store.state.sd.frame.modelList

然后在方法中改变了modelList(如增删改),如下方法

 changeModel(model) {if (model) {model.modelChosen = !model.modelChosenif (model.modelChosen) {this.modelList.push({ name: model.name, showCode: model.showCode, width: model.width })} else {this.modelList.splice(this.modelList.findIndex((item) => item.name === model.name),1)}}

这样,就会报上述错误了,但是代码还是可以正常执行的,所以,在复制时候需要给后面加上slice()进行拷贝一下就好了,像这样

 this.modelList = store.state.sd.frame.modelList.slice()

然后通过mutations更新vuex的数据

 store.commit('sd/frame/setModelList', this.modelList)

这样错误就解决了,相信我,一定要加slice(),不加会死人的

操作vuex中的数据报错 Do not mutate vuex store state outside mutation handlers相关推荐

  1. vue报错:Error: [vuex] Do not mutate vuex store state outside mutation handlers.

    报错原理解读 Error: [vuex] Do not mutate vuex store state outside mutation handlers. 该报错从文本意思理解还是很清晰的,不要在m ...

  2. 解决this._data.$$state...“Error: [vuex] do not mutate vuex store state outside mutation handlers.“ 报错

    今天遇到了这样一个报错: [Vue warn]: Error in callback for watcher "function () {return this._data.$$state; ...

  3. [vuex] Do not mutate vuex store state outside mutation handlers.

    我之前是这么使用的: this.form = this.$store.state.common.searchFormData; form是检索表单,每次进入页面从vuex中取出进行初始化,但是在搜索表 ...

  4. Do not mutate vuex store state outside mutation handlers.

    组件代码: selectItem(item,index) {this.selectPlay({list: this.songs,index}) }, ...mapActions(['selectPla ...

  5. VUEX 报错:Do not mutate vuex store state outside mutation handlers.

    利用空闲事件做音乐webapp的时候出错了,记录下问题 mutaitions action: 组件代码 问题出在了 payload ,在这的 list 是一个数组,是一个引用类型,所以就有可能在 vu ...

  6. SpringBoot向Mysql中插入数据报错:org.springframework.dao.InvalidDataAccessResourceUsageException: error perfo

    SpringBoot向Mysql中插入数据报错:org.springframework.dao.InvalidDataAccessResourceUsageException: error perfo ...

  7. 解决Myeclipse下Debug出现Source not found以及sql server中导入数据报错

    前言:在空间里回顾了我的2014,从生活.技术.家庭等各方面对自己进行总结剖析,也是给自己一个交代.也想在博客上专门写一篇2014年度菜鸟的技术路回忆录,但是因为各种事一再耽搁了,现在来写也就更显得不 ...

  8. 关于数据表中插入数据报错(pymysql.err.IntegrityError) (1062, “Duplicate entry ‘0112‘ for key ‘‘teacher.PRIMARY‘“)

    文章目录 1.错误截图: 2.错误解决方案: 1.错误截图: 2.错误解决方案: 数据库的teacher表中已经存在了该数据.执行下面的操作会将报上面的错误. 在设置id和username属性的时候, ...

  9. 使用mongoose模块向本地mongodb数据库中插入数据报错“Operation `people.insertOne()` buffering timed out after 10000ms“

    异常 连接本地的mongodb数据库报错: MongooseError: Operation `people.insertOne()` buffering timed out after 10000m ...

最新文章

  1. Centos安装g++错误 :No package g++ available
  2. cocos2dx在eclipse环境下集成ucsdk
  3. python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫
  4. ZOJ3715 竞选班长求最小花费
  5. struts 2读书笔记-----struts2的开发流程
  6. 【转】MySQL中select * for update锁表的问题
  7. C++学习之路 | PTA乙级——1092 最好吃的月饼 (20 分)(精简)
  8. asp.core api 通过socket和服务器通信发送udp_详解Linux的SOCKET编程
  9. c# WPF设置软件界面背景为MediaElement并播放视频
  10. HTML5CSS3知识点总结(1)
  11. Android AES加密解密 CTR 模式
  12. C盘空间不足怎么办?教你将其他盘存储空间分给C盘
  13. 神经网络常用的训练方式,神经网络训练过程详解
  14. 10年创业消亡史:风口起落的背后,是6271家创业公司的黯然离场
  15. ORACLE安装方法
  16. Python自述和简介
  17. Django开发个人博客网站——1、开发环境
  18. spacedesk投影,将电脑屏幕投影或者扩展到手机
  19. 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
  20. windows api 控制屏幕亮度

热门文章

  1. 英语口语练习三十六之There's no need to,没有必要
  2. centos虚拟机设置共享文件夹并通过我的电脑访问[增加smbd端口修改]
  3. 华为机试题:渊子赛马
  4. 【工业机器人】工业机器人技术最新知识大全;工业机器人驱动与控制系统
  5. php laravel微信支付
  6. 架构系列——架构师必备基础:单体、分布式、集群与冗余的区别
  7. python 继续学习第七天 字典
  8. [附源码]SSM计算机毕业设计文具销售系统JAVA
  9. AI艺术的基因工程?使用 #Artbreeder 改变图像的任意形态
  10. 任志强再论房价,基准地价增数倍房价还得涨