嗨我一直在尝试学习vuejs和vuex,同时试图通过vix概念从api调用得到响应我得到了以下错误 . 请帮助 . 发生此错误
错误TypeError:无法在app.js:12012读取未定义的属性'dispatch'
loginAction.js
export const getUsersList = function (store) {
let url = '/Apis/allUsers';
Vue.http.get(url).then((response) => {
store.dispatch('GET_USER_RES', response.data);
if (response.status == 200) {
}
}).catch((response) => {
console.log('Error', response)
})
}
loginStore.js
const state = {
userResponse: []
}
const mutations = {
GET_USER_RES (state, userResponse) {
state.userResponse = userResponse;
}
}
export default {
state, mutations
}
login.vue
import {getUsersList} from './loginAction';
export default {
created () {
try{
getUsersList();
}catch(e){
console.log(e);
}
},
vuex: {
getters: {
getUsersList: state => state.userResponse
},
actions: {
getUsersList
}
}
}
</ script>
1 回答
如果您手动调用操作(例如在try / catch中),则不会将商店上下文作为第一个参数 . 您可以使用
getUsersList(this.store)
我想,但我会使用dispatch来完成您的所有操作 . (我编辑了一点,以获得一个最小的运行示例,但我认为你明白了!)此外,使用
commit
来达到突变而不是dispatch
. 即: