首页 > 解决方案 > Vuex:为什么我的数组在进行任何突变之前使用元素 Observer 进行初始化?

问题描述

我有一个初始状态的数组初始化为一个空数组。

const state = {tmpArray = []}

当我第一次从任何地方访问状态时,通过使用 getter,在 Vue 组件上使用 mapState,甚至在进行突变之前调度 vuex 操作时打印它,变量 tmpArray 显示一个数组,其中包含一个元素 Observer(如果我用 console.log 打印它)或显示一个空对象(如果我使用 vue 开发工具)

使用 vue 开发工具:

> tmpArray: Array[1]
  > 0: Object (empty)

使用控制台日志:

[{…}, __ob__: Observer]
     0: 
       __ob__: Observer
          dep: Dep {id: 1195, subs: Array(0)}
          value: __ob__: Observer
                   dep: Dep {id: 1195, subs: Array(0)}
                   value: __ob__: Observer {value: {…}, dep: Dep, vmCount: 0}
                          __proto__: Object
                   vmCount: 0
                   __proto__: Object
                 __proto__: Object
          vmCount: 0
          __proto__: Object
       __proto__: Object
       length: 1
       __ob__: Observer {value: Array(1), dep: Dep, vmCount: 0}
       __proto__: Array

我只是通过这样做在任何地方访问数组来得到这个:

state.tmpArray

该数组用于查看表上的信息,因此我得到一个空行。

在访问和显示它之前,我没有对此状态进行任何突变。

提前致谢。

标签: javascriptarraysvue.jsvuejs2

解决方案


推荐阅读