Pemerhati Vue melancarkan perubahan data().
P粉144705065
P粉144705065 2024-03-26 09:06:45
0
1
446

rreeee

Saya jadi gila sikit. Bukankah sepatutnya pemerhati hanya memerhatikan prop "pemandu"? Apabila saya mengedit "standsData" ia juga tercetus dengan cara yang menghalang saya daripada mengisihnya. Adakah saya terlepas sesuatu?

P粉144705065
P粉144705065

membalas semua(1)
P粉662802882

Ini mungkin bergantung pada cara anda mengisih tatasusunan, tetapi memandangkan anda memperuntukkan data di bawah this.standsData = this.drivers ,因此对 this.standsData 的任何变异更改也会变异 this.drivers mereka merujuk kepada tatasusunan yang sama. Anda mungkin mahu menyalin tatasusunan pemacu untuk dimasukkan ke dalam keadaan komponen seperti ini:

  methods: {
    test() {
      console.log("chamou o teste")
      this.standingsData = [...this.drivers];
    }
  }

Ingat bahawa apabila this.standsData 中深度修改其他数据也会出现类似的问题,因为您在观察器上指定 deep: true ;如果您必须这样做,则在将 this.drivers 移动到 this.standsData anda perlu kedalaman menyalin data. Ini boleh dilakukan menggunakan kod tersuai atau alatan seperti lodash.cloneDeep.

Keanehan lain di sini ialah secara lalai pemerhati Vue tidak dicetuskan pada permulaan komponen. Jika anda ingin menambah pemerhati drivers 属性在组件初始化期间初始设置时发生变化时触发它,则需要将 immediate: true (dokumentasi di sini).

  watch: {
    drivers: {
      deep: true,
      immediate: true,
      handler: function () {
        this.test();
      },
    },
  },
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan