Skip to content

No disconnecting when component unmounts. #3

@tomisu

Description

@tomisu

While using this, I found this problem: if the component using this hook unmounts, React complains about a memory leak.

To fix this, resizeObserver should disconnect on useEffect's return function:

export const useResizeObserver = (ref: RefObject<HTMLElement>, callback: ObserverCallback) => {
  useEffect(() => {
    const resizeObserver = new (window as any).ResizeObserver((entries: ResizeObserverEntry[]) => {
      callback(entries[0].contentRect);
    });

    resizeObserver.observe(ref.current);

    return () => {
      resizeObserver.disonnect();
    }
  }, [ref]);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions