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

时间:2018-08-10 08:45:47

标签: vue.js vuex vue-resource

我在store.js - vuex中有一个名为signUserIn的动作。 SignUserIn方法只是一个http post请求。我已经在Vue-Resource文件中导入了storeimport 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 个答案:

答案 0 :(得分:1)

$http是Vue实例的属性,在vuex存储中,您应该导入Vue并使用Vue.http进行请求。

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