![](/img/trans.png)
[英]How can I get response of this.$store.dispatch on the vue.js 2?
[英]How can I dispatch async data with Vue 3 store
我正在從 api 作為異步提取數據,並將從此 api 返回的有效負載值傳輸到帶有 store.dispatch 的商店中的 state 字段。 但起初這個 state 是空的。 當我在頁面上進行更改並呈現它時,state 被填充。
function 我拉了 api
const getTransferredOrder = async () => {
isLoading.value = true;
return await TransferredOrderService.getTransferredOrderSummary()
.then((payload) => {
store.dispatch('GetTransferredList',payload)
return payload;
})
.catch(() => {
return [];
}).finally(() => {
isLoading.value = false
});
}
我首先在 onmounted 中將此稱為 function
onMounted(async () => {
await getTransferredOrder()
})
我的動作、突變和 state js 文件
動作.js
const actions={
GetTransferredList({commit},payload){
commit('GET_TRANSFERRED_ORDER_LIST',payload)
},
}
export default actions
突變.js
const mutations={
GET_TRANSFERRED_ORDER_LIST(state,payload){
state.transferredOrderList = payload;
},
}
export default mutations
state.js 在這里
const state={
transferredOrderList:[],
}
export default state
由於state在我存放.dispatch的地方是空的,所以在其他頁面上也是空的。 但是當我在頁面上寫一個小的console.log並編譯它時,store.state會填滿頁面。 這與它究竟有什么關系?
您可以查看控制台並在此處寫入錯誤。
你為什么回來? 你能把代碼改成->
const getTransferredOrder = async () => {
isLoading.value = true;
await TransferredOrderService.getTransferredOrderSummary()
.then((payload) => {
store.dispatch('GetTransferredList',payload);
})
.catch(() => {
store.dispatch('GetTransferredList',[]);
}).finally(() => {
isLoading.value = false
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.