今天遇到一个问题,将Vuex中数组的值赋给新的数组,新数组push时报上面的错误,代码如下
this.maPartListTable = this.$store.state.vehicleMa.maPartListTable;
this.maPartListTable.push(obj);
经询问后得知,应该这么写
this.maPartListTable = this.$store.state.vehicleMa.maPartListTable.slice();
查了下,就查到这句
slice(),不会修改原始数组而是返回一个新数组
操作是这样,每次赋值新数组(selection)给temp,然后actions中commit motations改变state值currentseletedRows就报这个错。
解决:如图,加个slice。
思考:引用数据类型,vuex里的currentSelectedRows引用selection变量,如果不加slice,改变selection就直接改变vuex里的state,而vuex不允许直接改变state中的东西,必须通过mutations。所以报错!!(欢迎讨论,自己目前的思考,不一定对)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。