ctx.setValue()
Pada skenario field yang dapat diedit seperti JSField, JSItem, menyetel nilai field saat ini. Bersama dengan ctx.getValue() dapat mengimplementasikan binding dua arah dengan form.
Skenario Penggunaan
Perhatian:
ctx.setValue(v)hanya tersedia pada konteks RunJS dengan binding form; pada skenario tanpa field binding seperti event flow, aturan linkage, JSBlock, method ini tidak ada, disarankan menggunakan optional chaining:ctx.setValue?.(value).
Definisi Tipe
- Parameter:
valueadalah nilai field yang akan ditulis, tipe ditentukan oleh tipe form item field.
Penjelasan Perilaku
ctx.setValue(v)akan update nilai field saat ini di Ant Design Form, dan memicu logika linkage dan validasi form terkait.- Saat form belum selesai dirender atau field belum terdaftar, pemanggilan mungkin tidak efektif, disarankan dikombinasikan dengan
ctx.getValue()untuk konfirmasi hasil penulisan.
Contoh
Bersama dengan getValue Mengimplementasikan Binding Dua Arah
Menyetel Default Value Berdasarkan Kondisi
Linkage Field Lain dan Menulis Kembali Field Saat Ini
Hal yang Perlu Diperhatikan
- Pada field yang tidak dapat diedit (seperti mode detail JSField, JSBlock),
ctx.setValuemungkinundefined, disarankan menggunakanctx.setValue?.(value)untuk menghindari error. - Saat menyetel nilai untuk field relasi (m2o, o2m, dll.), perlu meneruskan struktur yang sesuai dengan tipe field (seperti
{ id, [titleField]: label }), bergantung pada konfigurasi field.
Terkait
- ctx.getValue() - Mendapatkan nilai field saat ini, bersama dengan setValue mengimplementasikan binding dua arah
- ctx.form - Instance Ant Design Form, dapat membaca/menulis field lain
js-field:value-change- Event container yang dipicu saat nilai berubah dari luar, untuk update tampilan

