我在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;
}
答案 0 :(得分:1)
$http
是Vue实例的属性,在vuex存储中,您应该导入Vue并使用Vue.http
进行请求。
Vue.http.post(
'url',
data,
{ channel: 'default' },
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
)
...