Rumah > hujung hadapan web > View.js > teks badan

Bagaimana untuk menyelesaikan 'TypeError: Tidak dapat membaca sifat 'xyz' null' dalam aplikasi Vue?

王林
Lepaskan: 2023-08-19 17:18:29
asal
1458 orang telah melayarinya

在Vue应用中遇到“TypeError: Cannot read property 'xyz' of null”怎么解决?

Vue ialah rangka kerja progresif untuk membina antara muka pengguna Ia merangkumi operasi DOM biasa, membolehkan pembangun membangunkan aplikasi web interaktif dengan mudah. Walau bagaimanapun, dalam proses membangunkan aplikasi Vue, kadangkala anda menghadapi ralat "TypeError: Cannot read property 'xyz' of null". Ralat ini biasanya berlaku apabila kita cuba membaca harta daripada objek kosong, dan harta itu tidak boleh diakses kerana ia kosong.

Sebagai contoh, katakan kita mempunyai komponen Vue yang mengandungi sifat yang dipanggil "pengguna" dan kami cuba mengakses sifat "nama"nya dalam templat, tetapi "pengguna" sebenarnya adalah objek kosong, yang akan mengakibatkan " TypeError : Tidak boleh membaca 'nama' sifat null".

Jadi, apabila kita menghadapi ralat seperti ini dalam aplikasi Vue, bagaimanakah kita harus menyelesaikannya? Berikut ialah beberapa penyelesaian yang mungkin:

1 Gunakan arahan v-if

v-if ialah arahan yang disediakan oleh Vue untuk mengawal sama ada elemen dipaparkan dalam DOM. Jika kita cuba mengakses sifat objek yang berpotensi nol dalam templat, kita boleh menggunakan arahan v-if untuk mengelakkan ralat. Sebagai contoh, dalam contoh di atas, kita boleh mengubah suainya seperti ini:

<template>
  <div v-if="user">
    {{ user.name }}
  </div>
</template>
Salin selepas log masuk

Dengan cara ini, apabila "pengguna" tidak kosong, kandungan dalam templat akan dipaparkan, jika tidak, ia tidak akan dipaparkan, dengan itu mengelakkan ralat .

2. Gunakan ungkapan ternary

Selain arahan v-if, kita juga boleh menggunakan ungkapan ternary untuk mengelakkan ralat semasa mengakses sifat objek kosong. Sebagai contoh, dalam contoh di atas, kita boleh mengubah suainya seperti ini:

<template>
  <div>
    {{ user ? user.name : '' }}
  </div>
</template>
Salin selepas log masuk

Dengan cara ini, apabila "pengguna" tidak kosong, atribut "nama"nya akan dipaparkan, jika tidak, rentetan kosong akan dipaparkan, sekali gus mengelakkan Ralat berlaku.

3. Mulakan objek dalam data

Satu lagi cara untuk mengelakkan ralat apabila mengakses sifat objek kosong adalah dengan memulakan objek kosong atau nilai lalai untuk sifat yang diperlukan dalam pilihan data komponen. Sebagai contoh, dalam contoh di atas, kita boleh mengubah suainya seperti ini:

<script>
export default {
  data() {
    return {
      user: {
        name: ''
      }
    }
  }
}
</script>

<template>
  <div>
    {{ user.name }}
  </div>
</template>
Salin selepas log masuk

Dengan cara ini, apabila mengakses atribut "nama" objek "pengguna" dalam templat, jika "pengguna" kosong, Vue akan memulakannya untuk mempunyai "nama" "Objek kosong harta itu.

Jika anda tidak dapat mencari penyelesaian kepada masalah anda daripada kaedah ini, maka anda mungkin perlu melakukan penyahpepijatan yang lebih mendalam untuk mengetahui punca masalah tersebut. Dalam kes ini, anda boleh menggunakan alat pembangun penyemak imbas atau alat nyahpepijat Vue untuk mencari masalah. Dalam kebanyakan kes, alat ini akan membantu anda mencari dan menyelesaikan jenis ralat ini dengan cepat.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan 'TypeError: Tidak dapat membaca sifat 'xyz' null' dalam aplikasi Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!