Vuex с Cookie Storage теряет состояние после обновления страницы - PullRequest
0 голосов
/ 09 мая 2019

Я использую Vuex с хранилищем cookie, но когда я обновляю страницу F5, состояние теряется. Я не могу понять, почему.

Я пытался переключить «безопасный» вариант из «истинного» и «ложного», но это не исправило. Я тестирую в своей локальной среде с IIS.

импорт * в виде файлов cookie из 'js-cookie'; импорт createPersistedState из 'vuex-persistedstate';

экспорт по умолчанию нового Vuex.Store ({

strict: true,
plugins: [

    createPersistedState({
        storage: {
            getItem: key => Cookies.getJSON(key),
            setItem: (key, value) => Cookies.set(key, value, { expires: 3, secure: true }),
            removeItem: key => Cookies.remove(key)
        }
    })
],

actions,
modules: {

    module1,
    module2,
    module3,
    module4,
    module5,
    module6,
    module7,
    module8,
    module9
}

}); * * 1 010

Я ожидаю, что состояние будет восстановлено после обновления страницы.

1 Ответ

0 голосов
/ 12 мая 2019

Извините за поздний ответ. Спасибо fstep за ваш ответ. Проблема заключается в том, что метод getJSON десериализовал строку JSON, а библиотека «vuex-persistedstate» ожидала строку JSON. Однажды я изменил эту строку:

getItem: key => Cookies.getJSON(key)

к этому:

getItem: key => Cookies.get(key)

Проблема была решена на некоторых из моих модулей.

Я также добавил несколько файлов cookie и уменьшил состояние файлов cookie. Еще одна вещь, которая вызывала у меня проблемы - я не объявлял все свои поля в объектах состояния. В документации говорится, что это нужно сделать, потому что они реактивны, как объекты данных Vue.js.

Надеюсь, это поможет любому, кто застрянет, как я.

...