路由器链接后,为什么vuex突变不起作用?

时间:2019-08-29 13:51:41

标签: javascript vue.js vuex mutation

在我的项目中,我开发了新功能,现在一些现有功能被破坏了(有多技巧?)。但是我看不到新零件和断裂零件之间的相关性。因此,我尝试从头开始查找问题。

问题是用户使用路由器链接后,某些突变对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]);
}

我点击一些测试元素就会调用它,向我展示真实状态。我有下一个输出:

screenshot

因此,首先,存储中的对象不需要属性(未定义),然后在突变后将其设置为“ true”。然后,路由器链接操作会发生一些404错误,在旧版本中也会发生,因此这不是问题的原因。 然后,我们将路由器链接回去。并看到我们的财产已经是真实的。并设置为true。

在单击之后,我们将调用第二个函数,看到在所需对象上没有此类属性。

因此,我想知道是什么导致了这种行为,请进行检查。

0 个答案:

没有答案