Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
L'instance Ant Design Form au sein du bloc actuel, utilisée pour lire/écrire les champs du formulaire, déclencher la validation et la soumission. Équivalent à ctx.blockModel?.form, elle peut être utilisée directement dans les blocs liés aux formulaires (Formulaire, Formulaire d'édition, Sous-formulaire, etc.).
| Scénario | Description |
|---|---|
| JSField | Lire/écrire d'autres champs de formulaire pour implémenter des liaisons, ou effectuer des calculs et des validations basés sur d'autres valeurs de champs. |
| JSItem | Lire/écrire des champs de la même ligne ou d'autres champs dans les éléments de sous-table pour réaliser des liaisons internes au tableau. |
| JSColumn | Lire la ligne actuelle ou les valeurs des champs associés dans une colonne de tableau pour le rendu. |
| Actions de formulaire / Flux de travail | Validation avant soumission, mise à jour groupée de champs, réinitialisation de formulaires, etc. |
Remarque :
ctx.formest uniquement disponible dans les contextes RunJS liés aux blocs de formulaire (Formulaire, Formulaire d'édition, Sous-formulaire, etc.). Il peut ne pas exister dans des scénarios hors formulaire (comme les JSBlocks indépendants ou les blocs de tableau). Il est recommandé d'effectuer une vérification de valeur nulle avant utilisation :ctx.form?.getFieldsValue().
FormInstance est le type d'instance d'Ant Design Form. Les méthodes courantes sont les suivantes.
| Scénario | Utilisation recommandée |
|---|---|
| Lire/Écrire le champ actuel | ctx.getValue() / ctx.setValue(v) |
| Lire/Écrire d'autres champs | ctx.form.getFieldValue(name) / ctx.form.setFieldValue(name, v) |
Au sein du champ JS actuel, privilégiez l'utilisation de getValue/setValue pour lire/écrire le champ lui-même ; utilisez ctx.form lorsque vous avez besoin d'accéder à d'autres champs.
| Besoin | Utilisation recommandée |
|---|---|
| Lire/Écrire des champs de formulaire | ctx.form (Équivalent à ctx.blockModel?.form, plus pratique) |
| Accéder au bloc parent | ctx.blockModel (Contient collection, resource, etc.) |
Les valeurs du formulaire doivent être obtenues via await ctx.getVar('ctx.formValues') et ne sont pas directement exposées en tant que ctx.formValues. Dans un contexte de formulaire, il est préférable d'utiliser ctx.form.getFieldsValue() pour lire les dernières valeurs en temps réel.
getFieldsValue() ne retourne par défaut que les champs rendus. Pour inclure les champs non rendus (par ex. dans des sections repliées ou masqués par des règles conditionnelles), passez true : getFieldsValue(true).['orders', 0, 'amount']. Vous pouvez utiliser ctx.namePath pour obtenir le chemin du champ actuel et construire des chemins pour d'autres colonnes de la même ligne.validateFields() lève un objet d'erreur contenant errorFields et d'autres informations. Si la validation échoue avant la soumission, vous pouvez utiliser ctx.exit() pour interrompre les étapes suivantes.ctx.form pourrait ne pas être encore prêt. Il est recommandé d'utiliser le chaînage optionnel ou des vérifications de valeur nulle.ctx.form est équivalent à ctx.blockModel?.form.ctx.form.validateFields() et ctx.form.submit().ctx.namePath : Le chemin (tableau) du champ actuel dans le formulaire, utilisé pour construire les noms pour getFieldValue / setFieldValue dans les champs imbriqués.