logologo
Empezar
Manual
Desarrollo
Plugins
API
Inicio
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Empezar
Manual
Desarrollo
Plugins
API
Inicio
logologo
Descripción general de RunJS
Importación de módulos
Renderizado en contenedor

Variables globales

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.router
Next Pagectx.sql
Aviso de traducción IA

Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.

#ctx.setValue()

Establece el valor del campo actual en escenarios de campos editables como JSField y JSItem. En combinación con ctx.getValue(), permite la vinculación bidireccional con el formulario.

#Escenarios de uso

EscenarioDescripción
JSFieldEscribir valores seleccionados por el usuario o calculados en campos personalizados editables.
JSItemActualizar el valor de la celda actual en elementos editables de tablas o subtablas.
JSColumnActualizar el valor del campo de la fila correspondiente según la lógica durante el renderizado de columnas de tabla.

Nota: ctx.setValue(v) solo está disponible en contextos de RunJS con vinculación a formularios. No está disponible en escenarios sin vinculación de campos, como flujos de trabajo, reglas de enlace o JSBlock. Se recomienda utilizar el encadenamiento opcional antes de su uso: ctx.setValue?.(value).

#Definición de tipos

setValue<T = any>(value: T): void;
  • Parámetros: value es el valor del campo que se va a escribir. El tipo está determinado por el tipo de elemento de formulario del campo.

#Comportamiento

  • ctx.setValue(v) actualiza el valor del campo actual en el formulario de Ant Design y activa la lógica de enlace y validación del formulario relacionada.
  • Si el formulario aún no se ha renderizado completamente o el campo no está registrado, es posible que la llamada no sea efectiva. Se recomienda utilizar ctx.getValue() para confirmar el resultado de la escritura.

#Ejemplos

#Vinculación bidireccional con getValue

const { Input } = ctx.libs.antd;

const defaultValue = ctx.getValue() ?? '';

ctx.render(
  <Input
    defaultValue={defaultValue}
    onChange={(e) => ctx.setValue(e.target.value)}
  />
);

#Establecer valores predeterminados según condiciones

const status = ctx.getValue();
if (status == null || status === '') {
  ctx.setValue?.('draft');
}

#Escritura en el campo actual al vincular con otros campos

// Actualizar sincrónicamente el campo actual cuando cambia otro campo
const otherValue = ctx.form?.getFieldValue('type');
if (otherValue === 'custom') {
  ctx.setValue?.({ label: 'Personalizado', value: 'custom' });
}

#Notas

  • En campos no editables (por ejemplo, JSField en modo de solo lectura, JSBlock), ctx.setValue puede ser undefined. Se recomienda usar ctx.setValue?.(value) para evitar errores.
  • Al establecer valores para campos de asociación (M2O, O2M, etc.), debe pasar una estructura que coincida con el tipo de campo (por ejemplo, { id, [titleField]: label }), dependiendo de la configuración específica del campo.

#Relacionado

  • ctx.getValue() - Obtiene el valor del campo actual, se usa con setValue para la vinculación bidireccional.
  • ctx.form - Instancia de Ant Design Form, utilizada para leer o escribir en otros campos.
  • js-field:value-change - Un evento de contenedor que se activa cuando cambia un valor externo, utilizado para actualizar la visualización.