восстановить состояние из localStorage в vuex-persistedstate - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел бы использовать vuex-persistedstate для хранения значений корзины для вошедших в систему пользователей и не вошедших в систему. Я хотел бы иметь действие или мутацию после входа и выхода из системы, которая будет загружать состояние из localStorage,

Чтобы дифференцировать пользователей, я задаю соответствующий ключ, как показано ниже:

import createPersistedState from 'vuex-persistedstate'

export default ({store}) => {
  window.onNuxtReady(() => {

    let key;
    (!!store.state.user.info) ? key = store.state.user.info.id : key = 'guest'; 

    createPersistedState({
      key,
      paths: [
        'cart'
      ]
    })(store)

  })
}

И затем в локальном хранилище я могу сохранить пользовательскую и гостевую корзину:


user_id_here |{ "Корзина": [{ "ID": 1, "количество": 3, "Код": "ce11eda1-0331-4d64-8793-0646ef287a6b"}, { "идентификатор": 1, "количество": 14,»sku ":" 2631399 ...


guest | {"корзина": [{"id": 3, "количество": 1, "sku": "ce1dsada1-0221-4d64-8133-0646ef287a6b "}, {" id ": 5," amount ": 1," sku ":" 2685979 ...


Пример сценария:

  1. Пользователь открывает веб-сайт гостем.
  2. Приложение при загрузке сохранено. Состояние по имени ключа - корзина для гостя.
  3. гость добавляет некоторые продукты или что-то еще.* Вход пользователя в систему - запуск создания нового состояния для входа пользователя, возможно объединение корзин.
  4. пользователь добавляет некоторые значения в корзину, которые сохраняются в корзине пользователя.
  5. выход пользователя из системы - изменение триггерасостояние на госте.

Основной вопрос:

Как загрузить состояние из локального хранилища в vuex-persistedstate при действии, мутации или других действиях vuex?

Короче говоря: пользователь входит / выходит - плагин обнаруживает действие или мутацию, поэтому он перезагружает состояние для конкретного клиента(Пользователь / гость)

...