vuex的计算属性_vue与vuex计算属性不更新

我正在使用vuex和socket.io来进行state.Nodes.nodes更新 . 我正在更新单个节点(索引4),当我使用setInterval记录output_state和计算完全相同的属性(node 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

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

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

我已经改变了这种变异(将Vue导入文件):

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

它有效 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值