簡體   English   中英

Vuex變異無法正確設置狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM