Avis de traduction IA

Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.

ctx.off()

Supprime les écouteurs d'événements enregistrés via ctx.on(eventName, handler). Cette méthode est souvent utilisée en conjonction avec ctx.on pour se désabonner au moment opportun, évitant ainsi les fuites de mémoire ou les déclenchements multiples.

Cas d'utilisation

ScénarioDescription
Nettoyage de useEffect dans ReactAppelé dans la fonction de nettoyage de useEffect pour supprimer les écouteurs lors du démontage du composant.
JSField / JSEditableFieldSe désabonner de js-field:value-change lors de la liaison de données bidirectionnelle pour les champs.
Lié aux ressourcesSe désabonner des écouteurs tels que refresh ou saved enregistrés via ctx.resource.on.

Définition du type

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

Exemples

Utilisation jumelée dans 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);
}, []);

Désabonnement des événements de ressource

const handler = () => { /* ... */ };
ctx.resource?.on('refresh', handler);
// Au moment opportun
ctx.resource?.off('refresh', handler);

Remarques

  1. Référence du gestionnaire cohérente : Le handler passé à ctx.off doit être la même référence que celle utilisée dans ctx.on ; sinon, il ne pourra pas être supprimé correctement.
  2. Nettoyage en temps voulu : Appelez ctx.off avant le démontage du composant ou la destruction du contexte pour éviter les fuites de mémoire.

Documents connexes

  • ctx.on - S'abonner aux événements
  • ctx.resource - Instance de ressource et ses méthodes on/off