无法通过突变修改vuex状态

时间:2018-04-30 08:50:30

标签: vue.js vuex apollo vue-apollo

所以我的商店里有这个突变:

DELETE_POST: (state, index) => {
  state.Posts.splice(index, 1);
}

我也有这个动作:

delete({ commit, state }, index) {
  commit('DELETE_POST', index);
}

此操作基本上会删除通过vue-apollo 返回的帖子数组中的帖子。

在我的Vue组件中调度操作 this.$store.dispatch('Posts/delete', index);

导致 TypeError:0为只读错误

这是商店的状态:

export const state = () => ({
  Posts: [] 
})

和负责设置帖子的变异:

export const mutations = {
  SET_POSTS: (state, posts) => {
    state.Posts = posts;
  },

以下是我们如何使用apollo客户端

通过graphql查询填充商店
export const actions = {
  async get({ commit, state }, params) {
    let client = this.app.apolloProvider.defaultClient;
    let { data: response } = await client.query({
      query: GetPostsQuery
      variables: {
        id: parseInt(params.id) || null,
        description: params.description || '',
        categoryId: params.categoryId || null,
      },
      fetchPolicy: 'network-only'
    });
    let postsDetails = response.Posts.get;
    if (postsDetails.status_code !== 200) return false;
      commit('SET_POSTS', postsDetails.data);
    return postsDetails.data;
  },

这是一个vue-apollo问题吗?如果是这样我怎么可能修改状态?

0 个答案:

没有答案