我想创建一个简单的“ Conway's Game of Life”应用程序,并将已经进行的设置存储到localStorage中。
我创建了三个视图
地图设置 |定义地图大小等。
地图设置 |为您的地图创建预设
地图启动 |启动您的预设
每当设置更改时,都必须删除该预设,因为该预设可能具有不同的旧大小。如果localStorage为空,则设置使用默认值。
在我的商店内,我将地图设置保存到 <a href="@Url.Action("GetPDF", "Content", new { id = @item.ID })" target="_blank"><img src="~/Images/pdf.png" name="LinkToPdf" alt="@item.Image" height="60" width="60" /></a>
属性中。因此,该值为grid
或localStorage中的二维数组。
当路由到 MapSetup.vue 文件时,我使用已挂载的事件来设置预设
null
很遗憾, 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
}
}
(商店吸气剂)不为null,并且返回了this.grid
项。因此,__ob__ observer
语句非常真实,不会生成新的预设。
我在这里创建了我的应用程序的工作示例
https://codesandbox.io/s/vuetify-vuex-and-vuerouter-h6yqu
您可以在 MapSettings.vue 中定义设置,并且mapSetup的if
状态应设置为grid
。重定向到 MapSetup.vue 后,将不会出现任何网格,因为null
返回this.grid
而不是null。
我该如何解决?
答案 0 :(得分:2)
[MutationTypes.RESET_MAP_SETUP]: state => {
state.grid = [];
}
重置网格时,将其设置为空数组,而不设置为null 这就是为什么它在您挂载的钩子中不为空的原因