diff --git a/packages/lexical-react/src/useLexicalNodeSelection.ts b/packages/lexical-react/src/useLexicalNodeSelection.ts index fa140d072c6..3da347064d6 100644 --- a/packages/lexical-react/src/useLexicalNodeSelection.ts +++ b/packages/lexical-react/src/useLexicalNodeSelection.ts @@ -40,9 +40,17 @@ export function useLexicalNodeSelection( ); useEffect(() => { - return editor.registerUpdateListener(() => { - setIsSelected(isNodeSelected(editor, key)); + let isMounted = true; + const unregister = editor.registerUpdateListener(() => { + if (isMounted) { + setIsSelected(isNodeSelected(editor, key)); + } }); + + return () => { + isMounted = false; + unregister(); + }; }, [editor, key]); const setSelected = useCallback(