使用vuex如何追加数据?

troybug
  • 1.1k

我想通过vuex来实现上拉加载更多的功能,但追加的数据不知道怎么放进state.lists里,这是部分代码:

const state = {
  lists:{}
};

const mutations = {
  GETLIST(state,res) {//初始列表的数据
    state.lists = res;
  },
  GETMORE(state,res) {//加载更多数据
    Object.assign(state.lists,res);   //可以用这种方式往lists中追加数据吗?
    console.log(state.lists);
  }
};

const actions = {
  getmList({commit}) {
    axios.get(url).then(function (response) {
      let res = response.data.list;
      commit('GETLIST',res);
    });
  },
  getMore({commit}) {
    axios.get(url).then(function (response) {
      let res = response.data.list;
      commit('GETMORE',res);
    });
  }
};

似乎每次操作后state.lists都只保存了追加的数据,而原来的数据都不见了,请问应该怎么保存原始数据+追加数据呢?

回复
阅读 4.6k
3 个回答

clipboard.png

开始值为空

state.lists.push(res)吧

你这种数据格式应该是把lists设计成数组Array,push操作啊
你的可能是

var obj1 = {a:"1"};
var obj2 = {a:"2"};
Object.assign(obj1 ,obj2 );//覆盖
你知道吗?

宣传栏