首页 > 解决方案 > Vuex动态数组在开始时没有声明

问题描述

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

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 } }

我是否错过了一些东西,以便刷新使用数组的组件并且我没有声明数组的每个部分。(动态数组/对象)

标签: vuejs2vuex-modules

解决方案


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

import { set } from 'vue'

当您为对象分配键/值时,您应该使用这种方法:

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

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


推荐阅读