Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.
ctx.form
Die Ant Design Form-Instanz innerhalb des aktuellen Blocks, die zum Lesen und Schreiben von Formularfeldern sowie zum Auslösen von Validierungen und Übermittlungen verwendet wird. Sie entspricht ctx.blockModel?.form und kann direkt in Formular-Blöcken (Formular, Bearbeitungsformular, Unterformular usw.) verwendet werden.
Anwendungsfälle
Hinweis:
ctx.formist nur in RunJS-Kontexten verfügbar, die mit Formular-Blöcken (Formular, Bearbeitungsformular, Unterformular usw.) zusammenhängen. In Nicht-Formular-Szenarien (wie unabhängigen JS-Blöcken oder Tabellen-Blöcken) existiert es möglicherweise nicht. Es wird empfohlen, vor der Verwendung eine Null-Prüfung durchzuführen:ctx.form?.getFieldsValue().
Typdefinition
FormInstance ist der Instanztyp von Ant Design Form. Häufig verwendete Methoden sind wie folgt aufgeführt.
Häufig verwendete Methoden
Formularwerte lesen
Formularwerte schreiben
Validierung und Übermittlung
Zurücksetzen
Beziehung zu verwandten Kontexten
ctx.getValue / ctx.setValue
Innerhalb des aktuellen JS-Feldes sollten Sie vorrangig getValue/setValue verwenden, um das Feld selbst zu lesen oder zu schreiben. Verwenden Sie ctx.form, wenn Sie auf andere Felder zugreifen müssen.
ctx.blockModel
ctx.getVar('ctx.formValues')
Formularwerte müssen über await ctx.getVar('ctx.formValues') abgerufen werden und werden nicht direkt als ctx.formValues bereitgestellt. In einem Formular-Kontext ist es vorzuziehen, ctx.form.getFieldsValue() zu verwenden, um die neuesten Werte in Echtzeit zu lesen.
Hinweise
getFieldsValue()gibt standardmäßig nur gerenderte Felder zurück. Um nicht gerenderte Felder einzubeziehen (z. B. in eingeklappten Bereichen oder durch bedingte Regeln ausgeblendet), übergeben Sietrue:getFieldsValue(true).- Pfade für verschachtelte Felder wie Untertabellen sind Arrays, z. B.
['orders', 0, 'amount']. Sie könnenctx.namePathverwenden, um den Pfad des aktuellen Feldes zu erhalten und Pfade für andere Spalten in derselben Zeile zu konstruieren. validateFields()wirft ein Fehlerobjekt aus, daserrorFieldsund andere Informationen enthält. Wenn die Validierung vor dem Absenden fehlschlägt, können Siectx.exit()verwenden, um nachfolgende Schritte abzubrechen.- In asynchronen Szenarien wie Workflows oder Verknüpfungsregeln ist
ctx.formmöglicherweise noch nicht bereit. Es wird empfohlen, Optional Chaining oder Null-Prüfungen zu verwenden.
Beispiele
Feldverknüpfung: Unterschiedliche Inhalte basierend auf dem Typ anzeigen
Aktuelles Feld basierend auf anderen Feldern berechnen
Andere Spalten in derselben Zeile innerhalb einer Untertabelle lesen/schreiben
Validierung vor dem Absenden
Absenden nach Bestätigung
Verwandte Themen
- ctx.getValue() / ctx.setValue(): Aktuellen Feldwert lesen und schreiben.
- ctx.blockModel: Übergeordnetes Block-Modell;
ctx.formentsprichtctx.blockModel?.form. - ctx.modal: Bestätigungsdialoge, oft zusammen mit
ctx.form.validateFields()undctx.form.submit()verwendet. - ctx.exit(): Beendet den Prozess bei Validierungsfehlern oder Benutzerabbruch.
ctx.namePath: Der Pfad (Array) des aktuellen Feldes im Formular, der zur Konstruktion von Namen fürgetFieldValue/setFieldValuein verschachtelten Feldern verwendet wird.

