반응형
import ReactDOM from 'react-dom';
Modal.js 에 아래와 같이 Portal을 사용하지 않아도 된다
const Modal = props => {
return <Fragment>
<Backdrop />
<ModalOverlay>
{props.children}
</ModalOverlay>
</Fragment>
};
하지만 사용해보겠다
Portal을 사용하기 위해서는 react-dom 에서 ReactDOM을 import 해야 함
import ReactDOM from 'react-dom';
무엇을 Portal 할 지와 어디로 Portal 할 지를 알려줘야 한다.
id가 overlays인 div을요, index.html 파일에
헬퍼 상수를 만든다
Modal.js
import { Fragment } from 'react';
import ReactDOM from 'react-dom';
import classes from './Modal.module.css';
const Backdrop = props => {
return <div className={classes.backdrop} />
};
const ModalOverlay = props => {
return <div className={classes.modal}>
<div className={classes.content}>{props.children}</div>
</div>
};
const portalElement = document.getElementsById('overlays');
const Modal = props => {
return <Fragment>
{ReactDOM.createPortal(<Backdrop />)}
{ReactDOM.createPortal(<ModalOverlay>{props.children}</ModalOverlay>, portalElement)}
</Fragment>
};
export default Modal;
그리고 App.js에 import
반응형
'온라인 강의 > React 완벽 가이드 [Udemy]' 카테고리의 다른 글
151. 장바구니 컨텍스트 추가 (0) | 2023.06.15 |
---|---|
150. 카트 및 모달 State 관리 (0) | 2023.06.15 |
148. "장바구니" 컴포넌트 작업하기 (0) | 2023.06.14 |
147. 양식 입력 IDs 수정하기 (0) | 2023.06.14 |
146. 양식 추가하기 (0) | 2023.06.14 |