Vuex反应性-更新存储中的数组值不会更新组件中的计算值

时间:2020-07-22 12:52:45

标签: laravel vue.js vuex

我具有以下mutation设置:

state.user.companies[data.index] = data.company;

据我在调试器中看到的那样,这正确地更新了Vuex中的值,但在不同组件中计算出的值似乎未更新该值。即

company(){
    return this.$store.state.user.companies[this.$store.state.company_index];
},

但是,如果我执行以下突变,则它确实可以工作(但在这种情况下不是我所需要的):

state.company_index = data.new_index;

我也想使它在第一个突变中起作用的任何想法吗?

1 个答案:

答案 0 :(得分:1)

Vue无法检测到何时直接使用索引设置非根状态属性。为了保持反应性,请使用set()方法。

Vue.set(state.user.companies, data.index, data.company)