1. Motivate

스크린샷 2022-08-15 오후 7.19.56.png

2. 문제

3. 해결

import { createPortal } from 'react-dom';

const portalStore = (() => {
  let portalRoot: HTMLElement;
  function setPortalRoot(newPortalRoot: HTMLElement) {
    portalRoot = newPortalRoot;
  }

  function makePortal() {
    return ({ children }: { children: React.ReactNode }) =>
      createPortal(children, portalRoot);
  }

  return { makePortal, setPortalRoot };
})();

export default portalStore;