Vuex commit не работает без параметра payload - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь совершить свои глобальные действия.Чтобы получить к нему доступ, я должен использовать rootState, поэтому мне нужно добавить параметр root во время коммита.Это работает, если я передаю null в качестве второго параметра, который полезная нагрузка , но не работает, если я оставляю его пустым.

Рабочая версия:

context.commit('shared/clearError', null, { root: true })

Не работает:

context.commit('shared/clearError, { root: true })

Итак, вопрос в том, почему он не работает без второго параметра, если он является необязательным, как указано в их документации ?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете зафиксировать мутации одним из следующих способов:

  • commit(mutation: Object, options?: Object)
  • commit(type: string, payload?: any, options?: Object)

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

Это должно работать так, как вы ожидаете: context.commit({ type: 'shared/clearError'}, { root: true }

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

Для получения более подробной информации см. https://vuex.vuejs.org/guide/mutations.html и https://vuex.vuejs.org/api/#vuex-store-instance-methods

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