Rumah  >  Artikel  >  hujung hadapan web  >  Apakah yang perlu saya lakukan jika data onload uniapp tidak dapat diberikan?

Apakah yang perlu saya lakukan jika data onload uniapp tidak dapat diberikan?

PHPz
PHPzasal
2023-04-23 16:40:10618semak imbas

Baru-baru ini, saya menggunakan uniapp untuk membangunkan projek program kecil, dan saya menghadapi masalah, iaitu, data pada halaman tidak dapat dipaparkan. Selepas beberapa penerokaan dan pemikiran, akhirnya saya menemui penyelesaian.

Masalah

Saya telah memulakan permintaan untuk mendapatkan data dalam fungsi kitaran hayat onLoad halaman, memberikan data kepada atribut dalam data dan menggunakan atribut dalam templat untuk pemaparan. Tetapi masalah telah berlaku, data yang sepadan tidak dapat diberikan dalam templat.

Mula-mula, saya telah menghapuskan beberapa ralat biasa, seperti salah ejaan nama pembolehubah, jenis data yang tidak sepadan, dsb. Walau bagaimanapun, ini tidak menyelesaikan masalah.

Penyelesaian

Saya menyedari bahawa data mungkin diberikan sebelum ia diperoleh, jadi ia tidak boleh dilakukan secara langsung dalam fungsi kitaran hayat onLoad. Untuk menangani masalah ini, saya mencuba beberapa penyelesaian:

1 Letakkan permintaan data dalam fungsi kitaran hayat yang dibuat oleh komponen.

Kaedah ini pada asasnya tidak boleh dilaksanakan kerana permintaan data dilakukan secara tak segerak dalam fungsi kitaran hayat yang dicipta, manakala komponen pemaparan dilakukan secara serentak dan dipaparkan sebelum data diperoleh.

2. Gunakan jam tangan untuk memantau perubahan data.

Kaedah ini boleh dilaksanakan dalam operasi sebenar saya. Perubahan dalam data dipantau melalui jam tangan Setelah data berjaya diperoleh, fungsi jam tangan akan dicetuskan dan kemudian diberikan.

Paparan kod:

export default {
  data() {
    return {
      dataList: []
    }
  },
  watch: {
    dataList: function(val) {
      if (val.length > 0) {
        this.$nextTick(() => {
          //渲染组件的操作
        })
      }
    }
  },
  onLoad() {
    // 发起数据请求,并在成功后赋值给dataList
  }
}

Perlu diperhatikan di sini bahawa selepas data berjaya diperoleh, kaedah Vue.nextTick perlu digunakan untuk memaparkan komponen, jika tidak, komponen mungkin tidak diberikan sepenuhnya.

Kesimpulan

Dalam uniapp, adalah tidak mungkin untuk memaparkan data secara langsung dalam fungsi kitaran hayat onLoad Anda perlu menggunakan jam tangan untuk memantau perubahan data dan memaparkan komponen selepas data berjaya diperoleh .

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika data onload uniapp tidak dapat diberikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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