ctx.form
Instance Ant Design Form di dalam block saat ini, untuk membaca/menulis field form, memicu validasi dan submit. Setara dengan ctx.blockModel?.form, dapat digunakan langsung pada form block (Form, EditForm, sub-form, dll.).
Skenario Penggunaan
Perhatian:
ctx.formhanya tersedia pada konteks RunJS terkait form block (Form, EditForm, sub-form, dll.); pada skenario non-form (seperti JSBlock independen, table block) mungkin tidak ada, disarankan melakukan pengecekan null sebelum digunakan:ctx.form?.getFieldsValue().
Definisi Tipe
FormInstance adalah tipe instance Ant Design Form, dengan method umum sebagai berikut.
Method Umum
Membaca Nilai Form
Menulis Nilai Form
Validasi dan Submit
Reset
Hubungan dengan Context Terkait
ctx.getValue / ctx.setValue
Pada JS field saat ini, lebih utamakan getValue/setValue untuk membaca/menulis field ini; gunakan ctx.form saat perlu mengakses field lain.
ctx.blockModel
ctx.getVar('ctx.formValues')
Nilai form perlu didapatkan melalui await ctx.getVar('ctx.formValues'), tidak diekspos langsung sebagai ctx.formValues. Pada konteks form, lebih utamakan ctx.form.getFieldsValue() untuk membaca nilai terbaru secara real-time.
Hal yang Perlu Diperhatikan
getFieldsValue()secara default hanya mengembalikan field yang sudah dirender; field yang belum dirender (seperti area collapsed, conditional show/hide) perlu meneruskantrue:getFieldsValue(true).- Path field nested seperti sub-table adalah array, seperti
['orders', 0, 'amount']; dapat menggunakanctx.namePathuntuk mendapatkan path field saat ini, untuk membangun path kolom lain di baris yang sama. validateFields()akan melempar error object yang berisierrorFieldsdll.; saat validasi pre-submit gagal dapat menggunakanctx.exit()untuk menghentikan langkah selanjutnya.- Pada skenario async seperti event flow, aturan linkage,
ctx.formmungkin belum siap, disarankan menggunakan optional chaining atau pengecekan null.
Contoh
Linkage Field: Tampilkan Konten Berbeda Berdasarkan Tipe
Menghitung Field Saat Ini Berdasarkan Field Lain
Membaca/Menulis Kolom Lain di Baris yang Sama dalam Sub-Table
Validasi Sebelum Submit
Submit Setelah Konfirmasi
Terkait
- ctx.getValue() / ctx.setValue(): Membaca/menulis nilai field saat ini
- ctx.blockModel: Model parent block,
ctx.formsetara denganctx.blockModel?.form - ctx.modal: Popup konfirmasi, sering digunakan dengan
ctx.form.validateFields(),ctx.form.submit() - ctx.exit(): Menghentikan flow saat validasi gagal atau pengguna membatalkan
ctx.namePath: Path field saat ini di form (array), digunakan untuk membangun namegetFieldValue/setFieldValuesaat field nested

