Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.
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.
| Szenario | Beschreibung |
|---|---|
| JSField | Lesen/Schreiben anderer Formularfelder zur Implementierung von Verknüpfungen oder zur Durchführung von Berechnungen und Validierungen basierend auf anderen Feldwerten. |
| JSItem | Lesen/Schreiben von Feldern in derselben Zeile oder anderen Feldern innerhalb von Untertabellen-Elementen, um Verknüpfungen innerhalb der Tabelle zu realisieren. |
| JSColumn | Lesen der aktuellen Zeile oder von assoziierten Feldwerten in einer Tabellenspalte für das Rendering. |
| Formular-Aktionen / Workflow | Validierung vor dem Absenden, Stapelaktualisierung von Feldern, Zurücksetzen von Formularen usw. |
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().
FormInstance ist der Instanztyp von Ant Design Form. Häufig verwendete Methoden sind wie folgt aufgeführt.
| Szenario | Empfohlene Verwendung |
|---|---|
| Aktuelles Feld lesen/schreiben | ctx.getValue() / ctx.setValue(v) |
| Andere Felder lesen/schreiben | ctx.form.getFieldValue(name) / ctx.form.setFieldValue(name, v) |
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.
| Anforderung | Empfohlene Verwendung |
|---|---|
| Formularfelder lesen/schreiben | ctx.form (Entspricht ctx.blockModel?.form, ist jedoch bequemer) |
| Zugriff auf den übergeordneten Block | ctx.blockModel (Enthält Sammlung, Ressource usw.) |
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.
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 Sie true: getFieldsValue(true).['orders', 0, 'amount']. Sie können ctx.namePath verwenden, um den Pfad des aktuellen Feldes zu erhalten und Pfade für andere Spalten in derselben Zeile zu konstruieren.validateFields() wirft ein Fehlerobjekt aus, das errorFields und andere Informationen enthält. Wenn die Validierung vor dem Absenden fehlschlägt, können Sie ctx.exit() verwenden, um nachfolgende Schritte abzubrechen.ctx.form möglicherweise noch nicht bereit. Es wird empfohlen, Optional Chaining oder Null-Prüfungen zu verwenden.ctx.form entspricht ctx.blockModel?.form.ctx.form.validateFields() und ctx.form.submit() verwendet.ctx.namePath: Der Pfad (Array) des aktuellen Feldes im Formular, der zur Konstruktion von Namen für getFieldValue / setFieldValue in verschachtelten Feldern verwendet wird.