Vuex 动态数组在开始时没有声明

Vuex dynamic array without declaration at start

我有一个包含布尔值“数组”的状态。

state:{ myArray:{} }

我使用突变来设置值

 mutations: {
        Deactivate: function (state, name) {
          
            var storeName = 'Default';
            if (name)
                storeName = name.storeValue;
           
            state.myArray[storeName] = false; //got a function for activate
           
        },

我有一个组件使用给定“名称”的数组。

this.$store.state.ABC.myArray[this.name];

除非我在状态声明中声明布尔值,否则我的组件从不刷新存储值。

    state:{ myArray:{ Default: false } }

我是否遗漏了一些东西,以便刷新使用数组的组件,而我没有声明数组的每个部分。 (动态array/object)

在文件的开头,您可以导入 vue setter :

import { set } from 'vue'

当您将 key/value 分配给您的对象时,您应该使用这种方法:

set(state.myArray, 'storeName',  false); 

请看一下https://vuejs.org/v2/guide/reactivity.html#For-Objects