Vuex错误:“请勿在变异处理程序之外变异vuex存储状态。”

时间:2018-08-25 09:55:27

标签: laravel vue.js vuejs2 vuex

我的网站上有一个按钮,可以执行以下操作:

this.$store.commit('SET_THREAD_UPDATE', thread)

“线程”是一个由多个属性和对象组成的对象,调用该函数时,“线程”或其属性之一的对象内可能只有很小的变化。

'SET_THREAD_UPDATE'是Vuex突变,即使我没有做任何不同的事情,也是唯一会引起问题的一个。

const state = {
    threadUpdate: {}
}

const mutations = {
    SET_THREAD_UPDATE (state, userObj) {
        state.threadUpdate = userObj
    }
}

第一次按下触发提交的按钮时,一切都会按预期进行。但是,从第二次开始,我遇到了两个错误,并且提交没有执行任何操作:

[Vue warn]: Error in callback for watcher "function () { return this._data.$$state }": "Error: [vuex] Do not mutate vuex store state outside mutation handlers." (found in <Root>)

Error: "[vuex] Do not mutate vuex store state outside mutation handlers."

我找不到错误。这没有任何意义,因为我正在使用突变来更改状态。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

该问题的解决方案是使用JSON而不是常规JS对象。不确定为什么。