Saya menghadapi masalah di sini yang saya rasa saya tidak begitu faham. Saya menyertakan komponen kanak-kanak yang diluluskan prop yang dipanggil "aktif" yang boleh ditetapkan kepada benar atau palsu. Ideanya ialah jika "benar" diluluskan, maka sebahagian daripada komponen akan dipaparkan, jika "salah" diluluskan, ia tidak akan dipaparkan.
Dari pemahaman saya, saya sepatutnya boleh menggunakan nama prop, seperti ini:
这是active的值:{{active}}
Masalahnya ialah jika saya tetapkan secara langsung v-jika dalam pernyataan di atas kepada benar atau salah, maka ia berfungsi seperti yang diharapkan. Jika saya menyampaikannya sebagai prop, sama ada benar atau palsu, ia sentiasa dipaparkan.
Aktif (tidak menunjukkan apa-apa):
这是active的值:{{active}}
Tidak sah (tidak kira apa nilai aktif, kandungan dalam div akan dipaparkan):
//-File1---------------------------------------//-File2--------------------------------------- 这是active的值:{{active}}
Kenapa ni? Saya mengesahkannya dengan menunjukkan nilai "aktif" dan nilai itu telah diluluskan, tetapi ia masih menghasilkan walaupun nilainya palsu. Adakah saya kehilangan sesuatu di sini? Saya telah mencuba dengan petikan, tanpa petikan, menggunakan ref untuk menyampaikan nilai setempat dan menggunakannya:
import { ref } from 'vue'; export default{ props:['active'] setup(props,ctx){ const active = ref(props.active); return { active } } }
Ini juga tidak berjaya.
Pada lalai eksport anda,
Pada templat komponen anda,
Apabila menggunakan komponen, ikat elemen aktif kepada palsu
Ini kerana prop anda ialah rentetan yang diluluskan daripada komponen induk (sama seperti kelakuan lalai atribut HTML lain). Untuk menghantar prop sebagai boolean, anda perlu menggunakan
v-bind
语法或:
简写,这样false
yang akan dihuraikan sebagaiungkapan JavaScriptdan bukannya rentetan:atau