Rumah >hujung hadapan web >uni-app >Apakah yang perlu saya lakukan jika data onload uniapp tidak dapat diberikan?
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!