【问题标题】:Modify variable get from Vuex Store修改从 Vuex Store 获取的变量
【发布时间】:2019-12-05 22:23:23
【问题描述】:

这个问题可能是最菜鸟,但我找不到。

首先,从存储状态分配变量

this.currentLoadNode = this.$store.state.loadNode

修改变量

this.currentLoadNode.shift();

编辑以避免误读:我不寻找修改 Vuex 状态(我知道提交突变),我只想修改我的 currentLoadNode 变量。然而,以一种神秘的方式,Vuex 还修改了loadNode 状态并抛出了这个错误

[Vue 警告]:观察者“function () { return this._data.$$state }”的回调出错:“错误:[vuex] 不要在突变处理程序之外改变 vuex 存储状态。”

希望任何人进入这个问题并可以给我帮助。提示

【问题讨论】:

    标签: vue.js vuejs2 vuex


    【解决方案1】:

    我认为它们指向内存中的相同地址。您可以尝试创建副本

    this.currentLoadNode = JSON.parse(JSON.stringify(this.$store.state.loadNode))
    

    或 ES6 语法

    this.currentLoadNode = [...this.$store.state.loadNode]
    

    【讨论】:

    • 我也认为 Vuex 文档应该提到这一点。案例用户想要修改从状态中获取的变量,他们必须克隆变量,而不是分配相等
    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 2019-06-05
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2020-04-30
    • 1970-01-01
    相关资源
    最近更新 更多