Vuex: странный вопрос о странном поведении vuex. Мне нужна как минимум одна мутация и фиксация, чтобы обновить или присвоить объектам моего магазина - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь установить токен для моего store.token Я знаю, что это не лучший вариант без использования мутации, но я делаю что-то вроде этого:

methods : {
        molestor(){
            const self = this;
            this.$store.state.token = "new token";
            this.$store.state.cleavage= "yes";
            this.$store.commit('settoken', "somethingrandom");
        },  
}

Тогда на моем store.js:

export const store = new Vuex.Store({
    state : {
        token : '',

    },
    mutations : {
        settoken(state,token){
            console.log(token);
        }
    }
});

Прямо сейчас все работает нормально ... все настраивается. Но когда я удаляю мутацию из store.js или удаляю коммит на моем molester(), он не присваивает значение токену. Почему это происходит?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Если вы ожидаете увидеть изменение в инструментах разработчика Vue, вы не увидите никаких изменений состояния, если они не произошли в результате мутации или пока не будет вызвана другая мутация.

0 голосов
/ 16 января 2019

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

Попытка установить состояние без мутации, это идет вразрез с дизайном Vuex (с управляемым хранилищем / состоянием)

Обычно попытка установить состояние без мутаций (скажем, внутри действия) приводит к ошибке, но я также считаю, что при получении состояния через '$ store.state' будет только возвращаться состояние (и не возвращаться экземпляр состояния). )

Это сделано для того, чтобы поддерживать неизменность во всем состоянии вашего приложения

...