[英]Vuex Mutation Not Setting State Correctly
我正在研究Vue / Vuex項目,但遇到一個非常奇怪的問題。 我有一個突變,在將狀態突變為有效負載之前和之后,我都在控制台進行日志記錄,它顯示了兩個對象的數組。 但是,狀態僅顯示數組中的第一個對象。 這是我的突變:
mutations: {
SET_LOADED_BUILDINGS (state, payload) {
console.log(payload)
state.buildings = payload
console.log(state.buildings)
}
}
console.log(payload)輸出兩個對象的數組(我想要/期望的),console.log(state.buildings)也輸出兩個對象的相同數組。 但是,在Vue開發工具中,它僅顯示數組中的一個對象(第一個對象)。
它僅在有效負載中顯示一個對象,而在console.log中僅顯示兩個對象的原因是由於異步問題。 我使用Array.push將所有對象推送到數組中,並在完成負載之前推送了負載。 我實現了Promise,並使用Promise.all來確保在將狀態設置為有效負載之前完成Array.push。
提醒一下,動作可能是異步的,突變也可能是異步的。 這種推理背后有一種邏輯,突變是數據更改前后日志跟蹤捕獲的數據突變的“終點”,您可以進入在數據准備好之前提交的場景(如下所示)。 另請:突變必須是同步的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.