Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
ctx.form
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.).
Cas d'utilisation
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().
Définition du type
FormInstance est le type d'instance d'Ant Design Form. Les méthodes courantes sont les suivantes.
Méthodes courantes
Lecture des valeurs du formulaire
Écriture des valeurs du formulaire
Validation et soumission
Réinitialisation
Relation avec les contextes associés
ctx.getValue / ctx.setValue
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.
ctx.blockModel
ctx.getVar('ctx.formValues')
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.
Précautions
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), passeztrue:getFieldsValue(true).- Les chemins pour les champs imbriqués comme les sous-tables sont des tableaux, par ex.
['orders', 0, 'amount']. Vous pouvez utiliserctx.namePathpour 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 contenanterrorFieldset d'autres informations. Si la validation échoue avant la soumission, vous pouvez utiliserctx.exit()pour interrompre les étapes suivantes.- Dans les scénarios asynchrones comme les flux de travail ou les règles de liaison,
ctx.formpourrait ne pas être encore prêt. Il est recommandé d'utiliser le chaînage optionnel ou des vérifications de valeur nulle.
Exemples
Liaison de champs : Afficher un contenu différent selon le type
Calculer le champ actuel en fonction d'autres champs
Lire/Écrire d'autres colonnes de la même ligne dans une sous-table
Validation avant soumission
Soumettre après confirmation
Voir aussi
- ctx.getValue() / ctx.setValue() : Lire et écrire la valeur du champ actuel.
- ctx.blockModel : Modèle de bloc parent ;
ctx.formest équivalent àctx.blockModel?.form. - ctx.modal : Boîtes de dialogue de confirmation, souvent utilisées avec
ctx.form.validateFields()etctx.form.submit(). - ctx.exit() : Interrompre le processus en cas d'échec de validation ou d'annulation par l'utilisateur.
ctx.namePath: Le chemin (tableau) du champ actuel dans le formulaire, utilisé pour construire les noms pourgetFieldValue/setFieldValuedans les champs imbriqués.

