-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Open
Description
i've been using this pattern to clean up event listeners lately:
useEffect(() => {
const abortController = new AbortController();
const { signal } = abortController;
window.addEventListener(
"click",
(event) => {
doSomething();
},
{ signal },
);
window.addEventListener(
"resize",
(event) => {
doSomethingElse();
},
{ signal },
);
return () => {
abortController.abort();
};
}, []);it makes the cleanup function much smaller (and harder to mess up), plus it helps with type inference (i.e. you don't need to explicitly type your event handlers).
i can obviously just disable the no-leaked-event-listener rule, but it would be nice if it could detect this pattern with a heuristic, and maybe even alert you e.g. if you forget to pass signal or forget to call abort().
Metadata
Metadata
Assignees
Labels
No labels