この現象の理由:アクションは非同期操作であるため、commitメソッドでの印刷には値が必要です。オブジェクトを印刷できる理由:オブジェクトの変数はアドレスであるため、オブジェクトは展開時に展開されています。 。したがって、
オブジェクト変数はメモリ内のオブジェクトのアドレス値であり、通常のデータ変数は変数の実際の値であることがわかります。したがって、印刷したオブジェクトは、実際には印刷時点では空のオブジェクトですが、展開すると、コミット操作が完了しているため、オブジェクトは期待どおりの値に展開されます。しかし、通常のタイプの印刷の瞬間は何ですか
解決策はタイマーを追加することです
console.log(this.$store.state.robot.robot) // 有值
console.log(this.$store.state.robot.robot.items[index-1].id) //空值
setTimeout(() => {
console.log(index)
console.log(this.$store.state.robot.robot.items[index-1].id) // 有值
}, 1000);