VueX Getter не работает после мутации - PullRequest
1 голос
/ 11 февраля 2020

Я подключил VueX, и мутации работают правильно, однако метод Getter больше не запускается. Я использую VueJS с TypeScript без использования синтаксиса компонента класса TS.

Мой код выглядит следующим образом:

export default new Vuex.Store({
  state: {
    Started: false
  },
  getters: {
    getStarted(state): boolean {
      console.log(state.Started)
      return state.Started;
    }
  },
  mutations: {
    setStarted(state, payload): void {
      console.log("mutated", payload)
      state.Started = payload;
    }
  },
  actions: {
  },
  modules: {
  }
})

Я исправляю мутации в дочернем компоненте, как показано ниже

emitStartedClicked(): void {
  console.log("from child clicked");
  this.$store.commit("setStarted", false);
}

Я слушаю метод получения в родительском компоненте следующим образом:

computed: {
    getStarted(): void {
      console.log("gottem");
      return this.$store.getters.getStarted;
    }
  }

Я запускаю мутацию при нажатии кнопки дочернего компонента и надеюсь запустить метод получения в родительском компоненте. вычисляемые свойства.

Вывод моей консоли выглядит следующим образом: Img of Console output

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

Спасибо

1 Ответ

3 голосов
/ 11 февраля 2020

Вы пытались установить state.Started для чего-то отличного от false?

Начать с фальши и затем это. $ Store.commit ("setStarted", false); просто обновляет его до false

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...