【问题标题】:vue with vuex computed property not updating具有 vuex 计算属性的 vue 未更新
【发布时间】:2018-05-03 09:33:30
【问题描述】:

我正在使用 vuex 和 socket.io 进行 state.Nodes.nodes 更新。我正在更新单个节点(索引 4),当我使用 setInterval 记录时,输出状态和计算属性完全相同(节点 4 输出状态) - 它们在突变后不同!

computed: {
  tmpStatus () {
    if (this.$store.state.Nodes.nodes.length !== 0) {
      return this.$store.state.Nodes.nodes[4].output_state
    } else {
      return null
    }
  }
},
created () {
  this.debugInterval = setInterval(() => {
    console.log('Devicesstate', this.$store.state.Nodes.nodes[4].output_state, this.tmpStatus)
  }, 2000)
},

突变是这样完成的:

let nodeFound = state.nodes.filter(item => item.node_id === node.node_id)[0]
let nodeIndex = state.nodes.indexOf(nodeFound)
state.nodes[nodeIndex] = node

更新前的结果(两者相同): Devicesstate true true

更新后的结果 - 更改为 false(它们不同!): Devicesstate false true

我已经改变了这样的突变(将 Vue 导入文件):

Vue.set(state.nodes, nodeIndex, node)

而且它有效。

【问题讨论】:

标签: vue.js vuex


【解决方案1】:

我已经改变了这样的突变(将 Vue 导入文件):

Vue.set(state.nodes, nodeIndex, node)

它有效。

【讨论】:

    猜你喜欢
    • 2019-10-19
    • 2020-08-11
    • 1970-01-01
    • 2019-10-03
    • 2021-11-05
    • 2018-05-06
    • 2017-04-16
    • 2018-03-05
    • 2017-03-23
    相关资源
    最近更新 更多