Vue.js 具有vuex计算属性的vue未更新
我正在使用vuex和socket.io更新state.Nodes.Nodes。我正在更新单曲 节点(索引4)和使用setInterval记录时,输出_状态和计算的属性完全相同(节点4输出_状态)-它们在变异后不同Vue.js 具有vuex计算属性的vue未更新,vue.js,vuex,Vue.js,Vuex,我正在使用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
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
更新前的结果(两者相同):
DeviceState true true
更新后的结果-更改为false(它们不同!):
DeviceState false true
我更改了这样的变异(将Vue导入文件):
它是有效的。我已经改变了这种变异(将Vue导入文件):
而且它是有效的。您如何更改商店中的价值?有一些是Vue无法检测到的。感谢您的建议-非常有效
Vue.set(state.nodes, nodeIndex, node)
Vue.set(state.nodes, nodeIndex, node)