강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

toito1toi のプロフィール画像
toito1toi

投稿した質問数

一口サイズで切って食べるReact.js実践プロジェクト - SNS編

(7.1) 投稿追加UIを実装する

전역 모달이 여러 개일 경우 모달 프로바이더는 몇 개가 필요한가요?

作成

·

24

·

編集済み

0

전역 모달을 2개 쓰고 싶어서 일단 스토어 2개를 만들었는데요. 모달 프로바이더도 2개를 만들어야하는지, 아니면 하나의 모달 프로바이더에 2개 모달을 모두 넣어도 되는지 궁금합니다. 그리고 만약 하나의 모달 프로바이더에 두 모달을 넣는다면 어떻게 코드를 작성해야 하는지 궁금합니다.

// 1번
export default function ModalProvider({ children }: { children: ReactNode }) {
  return (
    <>
      {createPortal(
        <>
          <AModal />
          <BModal />
        </>,
        document.getElementById("modal-root")!,
      )}
      {children}
    </>
  );
}

// 2번
export default function ModalProvider({ children }: { children: ReactNode }) {
  return (
    <>
      {createPortal(<AModal />, document.getElementById("modal-root")!)}
      {createPortal(<BModal />, document.getElementById("modal-root")!)}
      {children}
    </>
  );
}
reacttypescriptreact-querysupabasezustand

回答 1

0

winterlood님의 프로필 이미지
winterlood
インストラクター

안녕하세요 송현정님 이정환입니다

하나의 모달 프로바이더에 두개의 모달을 넣으시면 됩니다! 모달 프로바이더는 그저 모달들을 App 컴포넌트 아래에 렌더링 시켜주기 위한 역할만 하기 때문이에요 😀

코드 작성 방법은 1번으로 하시면 됩니다. modal-root 라는 id를 갖는 div 태그 아래에 컴포넌트를 렌더링 시키는게 목적이기 때문에 2번처럼 각각 createPortal 메서드를 사용해 렌더링 하실 필요는 없습니다.

toito1toi のプロフィール画像
toito1toi

投稿した質問数

質問する