繁体   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