Komponen dinamik dalam Vue 2 kehilangan nilainya dan menyegarkan semula apabila nilai yang tidak berkaitan berubah
P粉245276769
P粉245276769 2023-09-07 16:25:55
0
1
420

Saya telah lama bergelut dengan masalah ini dan hampir menyangka ia adalah pepijat.

Saya menggunakan komponen vue dinamik untuk menggantikan teg dalam badan teks dengan input. Ini berfungsi seperti yang dijangkakan:

hydrateBaselineQuestion(targetObject) { var html = '

' html = html + targetObject.baseline if (targetObject.baseline_questions) { targetObject.baseline_questions.forEach((questionData, index) => { var counter = index + 1, placeholder if (typeof questionData.placeholder_text === 'undefined' || !questionData.placeholder_text || questionData.placeholder_text === null) { placeholder = 'Enter value' } else { placeholder = questionData.placeholder_text } switch (questionData.input_type) { case "select": // html = html.replace('<' + counter + '>', '') html = html.replace('<' + counter + '>', ``) break; case "text": html = html.replace('<' + counter + '>', ``) default: break; } }) } html = html + '

' return { template: html, data: () => ({ componentQuestionData: targetObject.baseline_questions, proxyValue: [] }), watch: { proxyValue(newValue) { console.log('proxyvalue: ' + newValue) // this.$emit('input', newValue) } }, mounted() { console.log('mounted') console.log(this.proxyValue) }, created() { // this.proxyValue = this.value console.log('created') console.log(this.proxyValue) }, updated() { console.log('updated') console.log(this.proxyValue) } } },

Masalahnya ialah apabila saya menukar nilai yang tidak berkaitan, komponen vue dinamik akan menyegarkan dan kehilangan semua data yang anda masukkan. Saya telah menyediakan salinan isu itu di sini: https://codesandbox.io/s/vue-2-playground-forked-pc7q4n?file=/src/App.vue

Seperti yang anda lihat, apabila anda menukar nilai dalam input pilih di bawah (diberikan kepada model bernamaperiod), semua data dalam borang dikosongkan

Saya juga mencuba kaedahv-modelmengikat data kepada komponen, lihat di sini: https://codesandbox.io/s/vue-2-playground-forked-bt766f?file=/src/App.vue Ia berfungsi, tetapi sekarang setiap kali saya masukkan aksara dalam kotak input, ia hilang fokus

Boleh sesiapa beritahu saya mengapa ini berlaku dan bagaimana untuk mencegahnya?

P粉245276769
P粉245276769

membalas semua (1)
P粉153503989

Saya tidak pasti sama ada pautan kongsi ini benar-benar mengalami perubahan fork saya, tetapi saya baru saja menukar kaedah hidrat anda kepada sifat yang dikira dan ia nampaknya berfungsi dengan baik sekarang.

https://codesandbox.io/s/pc7q4n

Sunting

Rasanya ia tidak mempunyai perubahan saya, tetapi bagaimanapun, hanya mempromosikan kaedah hidrat ke dalam sifat yang dikira dan menambahnya dalam中使用this.commitmentTarget而不是targetObject>水合物基线问题. Jika anda memerlukan butiran lanjut sila beritahu saya!

    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!