首页 > 解决方案 > Vuex 状态监视计算不工作

问题描述

我一开始就有这样的空状态

new Vuex.Store({
state: {
    comboBoxNewValues: {}
},

随着时间的推移,会有一些突变会像这样改变状态

this.$store.commit('addComboBoxValues', { input: 'foo', value: ['value': 1, 'name': 'bar']});

使用以下突变代码

 mutations: {

    addComboBoxValues(state, _value) {
        state.comboBoxNewValues[_value.input] = _value['value'];
    },
}   

它工作得很好,突变也改变了状态,现在我想对状态的改变执行一些操作,所以在我的组件中我添加了一个计算属性,像这样

computed: {
    getComboBoxNewValues() {
        return this.$store.state.comboBoxNewValues;
    }
}

当我使用 vue-dev-tools 进行调试时,组件计算属性有数据。每当数据在 vuex 中使用突变发生变化时,该数据也会反映在计算属性中。

现在我像这样添加一个观察者

watch: {

    getComboBoxNewValues:{

        handler: function(to, from) {
            console.log("reload");

        },
        deep: true
    }

}

问题是永远不会被调用,无论数据在计算属性中更改了多少次。请就我所缺少的提出建议。

标签: vue.jsvuejs2vuex

解决方案


推荐阅读