Vue js: Penyelesaian masalah - Membaca sifat '$refs' undefined
P粉848442185
P粉848442185 2023-11-07 23:34:12
0
1
765

Mendapat ralat Tidak boleh membaca sifat undefined (membaca '$refs') walaupun saya mempunyai rujukan dalam templat. Adakah ini bermakna saya perlu menggunakan cangkuk pelekap Vue?

<div class="input-wrapper">
   <input type="text" id="phone" placeholder="(555) 555-5555" ref="input"/>
</div>
                            
<script>                   
  this.$refs.input.addEventLis tener('input', function () {
        // some code
 });
</script>


P粉848442185
P粉848442185

membalas semua(1)
P粉752290033

Dalam komponen Vue 的根内部,在 Vue 2 和 Vue 3 中,this未定义


Semak di sini. . p>


Vue Rujukan Templat hanya boleh diakses dalam mana-mana cangkuk atau kaedah yang berlaku selepas komponen dipasang dan sebelum ia dinyahpasang.

Ini bermakna yang terawal anda boleh rujuk this.$refsini.$refs terletak dipasang. Terkini terletak sebelum Nyahlekap . Anda juga boleh mengaksesnya dalam mana-mana cangkuk atau kaedah yang berlaku antara dua detik tersebut.


Memandangkan anda cuba menambah pendengar acara pada HTMLInputElement, saya syorkan menggunakan arahan v-on, yang akan menambah pendengar acara secara automatik pada lekap dan mengalih keluarnya apabila dinyahlekap.

Dalam kes anda:


                            
sssccc

Dengan cara ini, anda harus tahu bahawa thisini fungsi biasa tidak mempunyai akses kepada konteks komponen, melainkan ia adalah fungsi anak panah:

export default {
  mounted() {
    this.$refs.input.addEventListener('input', function() {
      /*
       * Here `this` is the context of the current function, you can't 
       * access methods, computed, data or props of the component.
       * You'd need to make it an arrow function to access the component scope
       */
    })
  }
}

Dan dalam mana-mana kaedah (contohnya: myFn),thismyFn di atas),

ini ialah konteks komponen, yang boleh mengakses semua ahli komponen. 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan