7.6.2.56. useOverlay
useOverlay 후크는 웹 콘솔의 페이지 구조 외부의 DOM에 직접 구성 요소를 삽입합니다. 이를 통해 CSS를 사용하여 구성 요소의 스타일을 자유롭게 지정하고 위치를 지정할 수 있습니다. 예를 들어, UI의 오른쪽 상단에 오버레이를 띄우려면 style={{ position: 'absolute', right: '2rem', top: '2rem', zIndex: 999 }} 를 사용 합니다. useOverlay를 여러 번 호출하면 여러 개의 오버레이를 추가할 수 있습니다. closeOverlay 함수가 오버레이 구성 요소에 전달됩니다. 이를 호출하면 useOverlay 로 추가된 다른 오버레이에 영향을 주지 않고 DOM에서 구성 요소를 제거합니다. 추가 속성을 useOverlay 에 전달하면 해당 속성이 오버레이 구성 요소로 전달됩니다.
예
const OverlayComponent = ({ closeOverlay, heading }) => {
return (
<div style={{ position: 'absolute', right: '2rem', top: '2rem', zIndex: 999 }}>
<h2>{heading}</h2>
<Button onClick={closeOverlay}>Close</Button>
</div>
);
};
const ModalComponent = ({ body, closeOverlay, title }) => (
<Modal isOpen onClose={closeOverlay}>
<ModalHeader title={title} />
<ModalBody>{body}</ModalBody>
</Modal>
);
const AppPage: React.FC = () => {
const launchOverlay = useOverlay();
const onClickOverlay = () => {
launchOverlay(OverlayComponent, { heading: 'Test overlay' });
};
const onClickModal = () => {
launchOverlay(ModalComponent, { body: 'Test modal', title: 'Overlay modal' });
};
return (
<Button onClick={onClickOverlay}>Launch an Overlay</Button>
<Button onClick={onClickModal}>Launch a Modal</Button>
)
}