我有一個vue項目是vuex 跟vue router和vue resource結(jié)合的,然后我有一個列表是從服務(wù)器異步獲取數(shù)據(jù)再顯示的,我在vue組件的route的data鉤子函數(shù)中要調(diào)用一個vuex的action獲取數(shù)據(jù),action是用vue resource寫的代碼如下:home.vue<div v-if="$loadingRouteData">loading...</div><div v-else>
<list v-for="item in list">list...</list>
</div>vuex: {
getters: {
list: listGetters
},
actions: {
getList
}
},
route: {
data () {
this.getList();
}
},actions.jsexport const getList= ({dispatch}) => {
api.getList().then(response => {
if (!response.ok) {
return dispatch('GET_LIST_FAILURE');
} else {
dispatch('GET_LIST_SUCCESS', { list: response.list });
}
}, response => {
dispatch('GET_LIST_FAILURE');
})
}我看vue router的文檔說要在data鉤子函數(shù)里面返回一個promise,但我的getList是包含一個vue resource的promise的,但是我在data鉤子函數(shù)里如上面代碼直接調(diào)用的話是同步resolve的,怎么實現(xiàn)在數(shù)據(jù)獲取之后變?yōu)閞esolve?
2 回答

慕哥6287543
TA貢獻(xiàn)1831條經(jīng)驗 獲得超10個贊
看上去,你的data
并沒有按照官網(wǎng)的說明寫哦:
你的
data
里沒有return
你的
getList
也沒有返回promise
至于其它什么“但是我在data鉤子函數(shù)里如上面代碼直接調(diào)用的話是同步resolve的”,沒看懂什么意思
添加回答
舉報
0/150
提交
取消