Localstorage.getItem () не работает в NUXT JS

Я пытаюсь разработать корзину покупок с помощью nuxt js. Я успешно сохраняю данные тележки в локальном хранилище, но не могу их получить. Localstorage.getItem () не работает в NUXT JS

Примечание: я не хочу использовать vuex-persistedstate.

🤔 А знаете ли вы, что...
JavaScript поддерживает асинхронное программирование с использованием промисов и асинхронных функций.


40
1

Ответ:

Решено

Я вижу много мелких проблем с этим.

Во-первых, похоже, что вы поставили addToCart и saveInLocalStorage, судя по тому, что вы фиксируете saveInLocalStorage.

Мутации следует использовать только для установки состояния одной переменной Vuex.

Они должны быть чистыми, что означает, что у них не должно быть побочных эффектов.

Вам необходимо использовать действие для saveInLocalStorage и действие для commit, мутации addToCart, прежде чем использовать dispatch для запуска действия saveInLocalStorage.

Во-вторых, неясно, где вы на самом деле запускаете эту функцию получения из локального хранилища. Вы используете его на верхнем уровне магазина Vuex?

Если это так, то для решения реальной проблемы, связанной с тем, что хранилище Vuex не обновляется, вам понадобится функция, отвечающая за получение значения storedCart и использование его для установки cart в качестве мутации, чтобы гарантировать, что хранилище Vuex действительно обновляется.

Наконец, здесь нет необходимости использовать троичную систему. Просто установите объект Vuex cart как пустой массив.