Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
La instancia de Ant Design Form dentro del bloque actual, utilizada para leer y escribir campos del formulario, activar la validación y realizar el envío. Es equivalente a ctx.blockModel?.form y se puede utilizar directamente en bloques relacionados con formularios (Formulario, Formulario de edición, subformularios, etc.).
| Escenario | Descripción |
|---|---|
| JSField | Leer/escribir otros campos del formulario para implementar vinculaciones (linkage), o realizar cálculos y validaciones basados en otros valores de campos. |
| JSItem | Leer/escribir campos de la misma fila u otros campos dentro de elementos de una subtabla para lograr vinculaciones dentro de la tabla. |
| JSColumn | Leer los valores de la fila actual o de campos asociados en una columna de tabla para su renderización. |
| Acciones de formulario / Flujo de eventos | Validación previa al envío, actualización masiva de campos, restablecimiento de formularios, etc. |
Nota:
ctx.formsolo está disponible en contextos de RunJS relacionados con bloques de formulario (Formulario, Formulario de edición, subformularios, etc.). Es posible que no esté presente en escenarios que no sean de formulario (como bloques JS independientes o bloques de tabla). Se recomienda realizar una comprobación de valor nulo antes de su uso:ctx.form?.getFieldsValue().
FormInstance es el tipo de instancia de Ant Design Form. Los métodos comunes son los siguientes.
| Escenario | Uso recomendado |
|---|---|
| Leer/escribir el campo actual | ctx.getValue() / ctx.setValue(v) |
| Leer/escribir otros campos | ctx.form.getFieldValue(name) / ctx.form.setFieldValue(name, v) |
Dentro del campo JS actual, priorice el uso de getValue/setValue para leer o escribir el propio campo; use ctx.form cuando necesite acceder a otros campos.
| Requisito | Uso recomendado |
|---|---|
| Leer/escribir campos de formulario | ctx.form (Equivalente a ctx.blockModel?.form, más conveniente) |
| Acceder al bloque padre | ctx.blockModel (Contiene colección, recurso, etc.) |
Los valores del formulario deben obtenerse a través de await ctx.getVar('ctx.formValues') y no se exponen directamente como ctx.formValues. En un contexto de formulario, es preferible usar ctx.form.getFieldsValue() para leer los valores más recientes en tiempo real.
getFieldsValue() devuelve solo los campos renderizados por defecto. Para incluir campos no renderizados (ej. en secciones colapsadas u ocultos por reglas condicionales), pase true: getFieldsValue(true).['orders', 0, 'amount']. Puede usar ctx.namePath para obtener la ruta del campo actual y construir rutas para otras columnas en la misma fila.validateFields() lanza un objeto de error que contiene errorFields y otra información. Si la validación falla antes del envío, puede usar ctx.exit() para terminar los pasos posteriores.ctx.form aún no esté listo. Se recomienda usar el encadenamiento opcional (optional chaining) o comprobaciones de nulos.ctx.form es equivalente a ctx.blockModel?.form.ctx.form.validateFields() y ctx.form.submit().ctx.namePath: La ruta (arreglo) del campo actual en el formulario, utilizada para construir nombres para getFieldValue / setFieldValue en campos anidados.