0
私はstate.Nodes.nodesの更新にvuexとsocket.ioを使用しています。私は単一ノード(インデックス4)を更新していますが、setIntervalを使用してロギングするとき、output_stateと計算されたプロパティは全く同じです(ノード4のoutput_state)。vuex計算されたプロパティを持つvueは更新されません。
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が検出できない[特定の配列の変更](https://vuejs.org/v2/guide/list.html#Caveats)があります。 –
提案ありがとうございます - 作品 –