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.notification
Next Pagectx.on()
Aviso de traducción IA

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

#ctx.off()

Elimina los escuchadores de eventos registrados a través de ctx.on(eventName, handler). Se utiliza frecuentemente en conjunto con ctx.on para cancelar la suscripción en el momento adecuado, evitando fugas de memoria o activaciones duplicadas.

#Casos de uso

EscenarioDescripción
Limpieza en useEffect de ReactSe llama dentro de la función de limpieza de useEffect para eliminar los escuchadores cuando el componente se desmonta.
JSField / JSEditableFieldCancela la suscripción a js-field:value-change durante la vinculación bidireccional de datos de los campos.
Relacionado con recursos (resource)Cancela la suscripción a escuchadores como refresh o saved registrados a través de ctx.resource.on.

#Definición de tipos

off(eventName: string, handler: (event?: any) => void): void;

#Ejemplos

#Uso conjunto en useEffect de React

React.useEffect(() => {
  const handler = (ev) => setValue(ev?.detail ?? '');
  ctx.on('js-field:value-change', handler);
  return () => ctx.off('js-field:value-change', handler);
}, []);

#Cancelación de suscripción a eventos de recursos

const handler = () => { /* ... */ };
ctx.resource?.on('refresh', handler);
// En el momento adecuado
ctx.resource?.off('refresh', handler);

#Notas importantes

  1. Referencia consistente del handler: El handler pasado a ctx.off debe ser la misma referencia que la utilizada en ctx.on; de lo contrario, no podrá eliminarse correctamente.
  2. Limpieza oportuna: Llame a ctx.off antes de que el componente se desmonte o el contexto se destruya para evitar fugas de memoria.

#Documentación relacionada

  • ctx.on - Suscribirse a eventos
  • ctx.resource - Instancia de recurso y sus métodos on/off