Я хотел бы создать простое приложение "Игра жизни Конвея" и сохранить настройки, которые уже были сделаны в localStorage.
Я создал три вида
Настройки карты
| Определить размер карты и т. Д.
Настройка карты
| Создайте предустановку для вашей карты
Запуск карты
| Запустите ваш пресет
При каждом изменении настроек предустановка должна быть удалена, поскольку предустановка может иметь другой старый размер. В настройках используются значения по умолчанию, если localStorage пуст.
В моем магазине я сохраняю настройки карты в свойстве grid
. Таким образом, значение равно либо null
, либо двумерному массиву из localStorage.
При маршрутизации в файл 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
(получатель магазина) не равен нулю и возвращает элемент __ob__ observer
. Из-за этого оператор if
равен truey и не будет генерировать новый пресет.
Я создал рабочий пример своего приложения здесь
https://codesandbox.io/s/vuetify-vuex-and-vuerouter-h6yqu
Вы можете определить настройки в MapSettings.vue , а состояние grid
из mapSetup должно быть установлено на null
. После перенаправления на MapSetup.vue сетка не должна появляться, потому что this.grid
возвращает __ob__ observer
вместо нуля.
Как я могу это исправить?