Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 存储getter返回观察者对象而不是null_Vue.js_Vuex - Fatal编程技术网

Vue.js 存储getter返回观察者对象而不是null

Vue.js 存储getter返回观察者对象而不是null,vue.js,vuex,Vue.js,Vuex,我想创建一个简单的“Conway's Game of Life”应用程序,并存储已对localStorage进行的设置 我创建了三个视图 地图设置 |定义地图大小等 地图设置 |为地图创建预设 地图发布 |启动预设 每当设置更改时,必须删除预设,因为预设可能具有不同的旧尺寸。如果localStorage为空,则设置使用默认值 在我的商店中,我将地图设置保存到网格属性。因此,该值要么是null,要么是本地存储中的二维数组 当路由到MapSetup.vue文件时,我使用挂载事件设置预设 mo

我想创建一个简单的“Conway's Game of Life”应用程序,并存储已对localStorage进行的设置

我创建了三个视图

  • 地图设置 |定义地图大小等

  • 地图设置 |为地图创建预设

  • 地图发布 |启动预设

每当设置更改时,必须删除预设,因为预设可能具有不同的旧尺寸。如果localStorage为空,则设置使用默认值

在我的商店中,我将地图设置保存到
网格
属性。因此,该值要么是
null
,要么是本地存储中的二维数组

当路由到MapSetup.vue文件时,我使用挂载事件设置预设

  mounted: function() {
    if (this.grid) { // the preset from the store / localStorage
      this.currentGrid = this.grid; // use the preset
    } else {
      this.currentGrid = this.generateNewMap(); // generate a new preset
    }
  }
不幸的是,
this.grid
(存储getter)不是空的,并返回一个
\uuuuuuuuuuuuuuoObserver
项。因此,
if
语句为truthy,不会生成新的预设

我在这里创建了一个应用程序的工作示例

您可以在MapSettings.vue中定义设置,并且mapSetup中的
网格
状态应设置为
null
。重定向到MapSetup.vue后,不应显示任何网格,因为
此.grid
返回的是
\uuuuuuuuuuuuo\uuuuuuuoObserver
,而不是null

我怎样才能修好它

[MutationTypes.RESET_MAP_SETUP]: state => {
    state.grid = [];
}
重置网格时,将其设置为空数组,而不是空数组
这就是为什么它在你的挂载钩子中不为空

你试过投它吗:
如果(!!this.grid).
?嘿,对不起,不,你介意解释一下我为什么要这么做吗?@Benoît Schiex是的,这是他犯的一个错误,但你试过他的沙箱吗?我仍然得到一张空卡片,虽然网格包含了正确的datastupid错误,但是网格仍然不会更新,因为问题3r已经提到了。。。