Vue: [2.0.0-rc.1] v-for dan ref: $refs tidak reaktif lagi?

Dibuat pada 17 Agu 2016  ·  3Komentar  ·  Sumber: vuejs/vue

Dalam 2.0.0-rc.1, sebuah konstruksi seperti

<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">

tidak berfungsi lagi (hitungan tetap pada nilai awal, bahkan jika items dan dengan demikian jumlah komponen diubah). Di v1, array $refs akan diperbarui secara reaktif.

Saya tidak yakin apakah ini bug atau fitur, tetapi #2873 sepertinya tidak menyebutkannya.

Komentar yang paling membantu

@yyx990803 apakah ini berarti bahwa menggunakan this.$refs.* di properti computed juga akan berhenti bekerja di v2 atau hanya digunakan di template? Apakah saya harus menyelesaikan semua ini dengan acara khusus?

Saat ini saya meneruskan hasil validasi dari anak-anak ke orang tua seperti ini.

Semua 3 komentar

Ini dimaksudkan - alasannya adalah $refs sekarang terdaftar/diperbarui selama proses render itu sendiri. Tidak disarankan untuk mengandalkan $refs dalam template karena hanya ditujukan untuk akses terprogram dalam JavaScript.

Saya telah memperbarui #2873 untuk menyertakan ini.

@yyx990803 apakah ini berarti bahwa menggunakan this.$refs.* di properti computed juga akan berhenti bekerja di v2 atau hanya digunakan di template? Apakah saya harus menyelesaikan semua ini dengan acara khusus?

Saat ini saya meneruskan hasil validasi dari anak-anak ke orang tua seperti ini.

Anda dapat menggunakan this.$forceUpdate() dan setTimeout untuk merender tampilan saat Anda memperbarui data dan menemukan bahwa $refs tidak diperbarui secara reaktif.

this.fetchSomeShit()
.then((data) => {
  this.data = data
  setTimeout(() => {
    this.$forceUpdate()
  })
})

gunakan setTimeout untuk memastikan data telah diberikan dalam apa yang mereka katakan di vue taskqueue

Apakah halaman ini membantu?
0 / 5 - 0 peringkat