vuex $ store.stateの値は取得できますが、内部の特定の値は取得できません

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
この現象の理由:アクションは非同期操作であるため、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);

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_40648700/article/details/112168417