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