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