Mengapa <lightning-input-field> tidak menyetel nilai kotak centang di LWC?
Saya mendapatkan data di LWC saya dari kelas pembungkus. Dalam data tersebut, saya mendapatkan nama API objek, nama dan nilai API bidang yang ada di bidang dalam bentuk String. Saya mengulang data dari kelas pembungkus dan mengambil masukan dari pengguna menggunakan lightning-input-field
.
Kode:
<!-- iterate over wrapper list -->
<template iterator:item={wrapperListCopy}>
<tr key={item.value.index}>
<td>
<lightning-record-edit-form object-api-name={objectApiName}>
<lightning-input-field id={item.value.index}
field-name={item.value.inputFieldName}
value={item.value.filterValue}>
</lightning-input-field>
</lightning-record-edit-form>
</td>
</tr>
</template>
The filterValue
datang dalam format String. Kode ini berfungsi untuk semua bidang kecuali kotak centang. Meskipun filterValue
berisi true
atau false
, hal yang sama tidak tercermin pada kotak centang di UI. Secara default, kotak centang muncul dicentang di UI terlepas dari nilai yang ada di filterValue
.
Artinya kotak centang tidak mendapatkan nilai dari value
atribut lightning-input-field
. Selain itu, kotak centang selalu muncul dicentang secara default di UI. Saya ingin ini tidak dicentang secara default. Saya tidak dapat memahami mengapa ini terjadi.
Apakah karena filterValue
itu String? - Saya membutuhkannya sebagai string karena semua bidang lain menggunakannya.
Atau karena saya menggunakan value
atribut, bukan checked
atribut? - Saya mendapat kesalahan yang mengatakan bahwa tidak ada checked
atribut seperti itu .
Tolong bantu. Terima kasih! 😄
Jawaban
Mungkin karena aturan konversi jenis JavaScript; string diubah menjadi Boolean dengan cara berikut:
- string yang tidak ditentukan, null atau kosong (yaitu "") menjadi
false
- string yang tidak satu pun di atas menjadi
true
Jadi, string "true" dan "false" keduanya menjadi true
Boolean. Anda perlu mengubah cara filterValue dibuat atau digunakan untuk menyelesaikan masalah ini. Misalnya, pastikan filterValue disetel ke null untuk false dan "true" jika tidak.