Ошибка Vuex Не изменяйте состояние хранилища Vuex вне обработчиков мутаций, когда фиксируете мутацию в действии с помощью settimout - PullRequest
0 голосов
/ 22 ноября 2018

Я использую vuex в строгом режиме: https://vuex.vuejs.org/guide/strict.html

У меня есть состояние, которое я хочу изменить посредством мутации, как описано в документации.Я запускаю эту мутацию в settimeout, так что это асинхронная мутация, поэтому я создаю действие следующим образом:

menuOnResize ({ commit }) {
    if (!state.menuIsOpen) {
      window.addEventListener('resize', resizeThrottler, false)
    }
    var resizeTimeout
    function resizeThrottler () {
      if (!resizeTimeout) {
        resizeTimeout = setTimeout(() => {
          resizeTimeout = null
          commit('menuIsOpenOnResize')
        }, 500)
      }
    }
  }

Но когда действие выполняется, консоль выдаёт мне следующую ошибку:

enter image description here

Я не могу понять, что я делаю неправильно, я имею в виду, я думаю, что я делаю это правильно, Мутируя состояние черезмутация с использованием действия, потому что это асинхронная задача.

Версии vue и vuex: vue: 2.5.17, vuex: 3.0.1

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