Не удается прочитать свойство 'post' из неопределенного в store.js

У меня есть действие в store.js - vuex называется signUserIn, Метод SignUserIn просто http post запрос. Я импортировал Vue-Resource в store файл: import VueResource from 'vue-resource', Vue.use(VueResource) а также в main.js - store.js был импортирован. В моем SignIn.vue компонент я отправляю SignIn действие. Я получаю обратно ошибку: Cannot read property 'post' of undefined, Что не так с моим импортом или кодом?

действие:

signUserIn ({commit, getters}, payload) {
      let data = {
        _email: payload.email,
        _password: payload.password
      }
      let that = this
      that.$http.post(
        'url',
          data,
        { channel: 'default' },
        { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
      ).then(response => {
          const newUser = {
            email: payload.email,
            login: payload.login,
            cart: []
          }
          commit('setUser', newUser)
      }, error => {
          console.error(error);
      });
    }

Мутация:

setUser (state, payload) {
    state.user = payload;
}

1 ответ

Решение

$http является свойством экземпляра Vue, в хранилище vuex следует импортировать Vue и использовать Vue.http делать запросы.

Vue.http.post(
    'url',
      data,
    { channel: 'default' },
    { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
  )
...
Другие вопросы по тегам