用mapGetters取出来的数据是错的?

从服务器中取地址数据,在actions中触发ajax,拿到数据后存在vuex中。从开发工具中看到,vuex中的数据是正确的,但是取出来的时候,所有的ParentID都变成一样的了。

在Vuex中,数据是这样的

1

取出来后,变成这样的了

2

所有的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来取出来是没有问题的,这是什么原因呢?我那里写错了吗?

阅读 4.7k
1 个回答

犯了个愚蠢的错误,在filter的时候,用‘=’代替‘===’了,变成赋值,所以parentID都变了,被自己蠢哭了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题