// store.js
state: {
shopList: []
},
mutations: {
changeShopList (state, arr) {
state.shopList = arr
}
},
actions: {
getShopList ({ commit, state }) {
global.axios.get(url).then(res => {
let { data: { code, data: { list } } } = res
if (+code === 200) {
list.unshift({ id: 0, shop_name: '全部门店' })
commit('changeShopList', list)
}
})
}
}
// index.vue
computed: {
shopList () {
console.log('computed', this.$store.state.shopList) // 空数组
return this.$store.state.shopList
}
},
created () {
this.$store.dispatch('getShopList')
console.log('created', this.shopList) // 空数组
}
现在问题是我需要打印出来请求到的数据而不是一开始定义的空数组,请教大佬怎么解决这个问题?
1
ayase252 2019-03-26 20:23:51 +08:00
请求还没有返回吧
|
2
zzlit OP @ayase252 大致意思就是说在请求的过程中就把我已开始定义的那个空数组打印出来了,的确是还没有返回然后 commit,后面我在另一个点击事件里面能把这个值 console 出来,所以我现在就是想一开始就能等它请求完再 commit,这个该怎么写,请大佬指点一下
|
3
rabbbit 2019-03-26 20:35:03 +08:00 1
拿 Promise 包起来返回后接 then 打印,或者 watch 那个变量
|
4
rabbbit 2019-03-26 20:36:56 +08:00
|