在我的项目中,我开发了新功能,现在一些现有功能被破坏了(有多技巧?)。但是我看不到新零件和断裂零件之间的相关性。因此,我尝试从头开始查找问题。
问题是用户使用路由器链接后,某些突变对vuex存储不再有影响。
private callSetCanRender() {
console.log(this.$store.state.editor.matrixes.find(m => m.id === this.matrix.id).canRender)
this.$store.commit('editor/setMatrixCanRender', {
matrix: this.matrix,
value: this.canRender,
});
console.log(this.$store.state.editor.matrixes.find(m => m.id === this.matrix.id).canRender)
}
我在每次更改某些数据并在启动时(装入)会调用此组件。
如果重新加载页面或单击外部网站上的链接后打开页面,则效果很好。但是,如果我进行一些路由器链接活动。功能相同,工作原理与以前相同(根据日志)。但是结果状态没有改变。不仅如此,vue-devtools扩展中没有显示此突变(仅在路由器链接之后,一切都按预期工作之前)。
根据控制台日志,我确定可以在函数体中看到它的名称。我也确信也可以调用变异函数(根据其他日志)。
我还有下一个构造:
private showState() {
console.log(this.$store.state.editor.matrixes[0]);
}
我点击一些测试元素就会调用它,向我展示真实状态。我有下一个输出:
因此,首先,存储中的对象不需要属性(未定义),然后在突变后将其设置为“ true”。然后,路由器链接操作会发生一些404错误,在旧版本中也会发生,因此这不是问题的原因。 然后,我们将路由器链接回去。并看到我们的财产已经是真实的。并设置为true。
在单击之后,我们将调用第二个函数,看到在所需对象上没有此类属性。
因此,我想知道是什么导致了这种行为,请进行检查。