【发布时间】:2018-06-08 15:40:40
【问题描述】:
我一生都无法弄清楚为什么这不起作用,所以希望你能提供帮助
我要做的只是通过 vuex 商店而不是在我的组件中获取请求,就像我目前作为学习 vue/nuxt 的一部分所做的那样,但只是无法使其按如下方式工作,任何人都可以看到请问我做错了什么
烦恼商店
import Vuex from "vuex";
import axios from "axios";
const URL = 'MYPATH';
const logStore = () => {
return new Vuex.Store({
state: {
logItems: {}
},
actions: {
setLog ({ commit }) {
axios
.get('URL')
.then(r => r.data)
.then(logItems => {
console.log(logItems) // I am getting back my results in log here
})
.then(logItems => {
commit('logItems', logItems)
})
},
},
mutations: {
logItems (state, logItems) {
state.logItems = logItems
},
getters: {
logItems(state) {
return state.logItems // log console here is empty object
}
},
});
};
导出默认logStore;
在我的组件中
import { mapState } from 'vuex'
created () {
this.$store.dispatch('setLog', this.logItems)
console.log(this.$store.getters.logItems) // empty object here
},
谁能告诉我为什么我将结果返回到我的操作中,而不是返回到我的 getter 或组件中
谢谢
【问题讨论】: