无法读取 store.js 中未定义的 属性 'post'

Cannot read property 'post' of undefined in store.js

我在 store.js - vuex 中有一个名为 signUserIn 的操作。 SignUserIn 方法只是一个 http post 请求。我在 store 文件中导入了 Vue-Resourceimport 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;
}

$http 是 Vue 实例的 属性,在 vuex store 中你应该导入 Vue 并使用 Vue.http 来发出请求。

Vue.http.post(
    'url',
      data,
    { channel: 'default' },
    { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
  )
...