从服务器中取地址数据,在actions中触发ajax,拿到数据后存在vuex中。从开发工具中看到,vuex中的数据是正确的,但是取出来的时候,所有的ParentID都变成一样的了。
在Vuex中,数据是这样的
取出来后,变成这样的了
所有的ParentID都是变成10001
.
我的getter是这样写的
areaList: (state) => {
console.log(state)
return state.baseLookUp.areaList
},
actions是这样写的,用了lodah的differenceBy,将vuex中没有缓存到的数据缓存进去
getAreaList: ({commit,state},pid) => {
const areaList = state.baseLookUp.areaList
ajax.getRegionList(pid).then((result) => {
commit(types.GETAREA,differenceBy(result,areaList,'RegionID'));
})
},
mutations
[types.GETAREA](state,areaList) {
state.areaList.push(...areaList)
},
state
const state = {
areaList: [], // 所有地区
}
computed
...mapGetters([
'areaList',
]),
但是我直接在vuex中定义同样的数据,用getters来取出来是没有问题的,这是什么原因呢?我那里写错了吗?
犯了个愚蠢的错误,在filter的时候,用‘=’代替‘===’了,变成赋值,所以parentID都变了,被自己蠢哭了