Portal
Used to render an element outside the DOM hierarchy.
The Portal
uses the ReactDOM.createPortal
API to render an element at the
end of document.body
or specific container.
import { Portal } from '@chakra-ui/react'
<Portal>
<div>Portal content</div>
</Portal>
Use the containerRef
prop to render the portal in a custom container.
import { Portal } from '@chakra-ui/react'
const Demo = () => {
const containerRef = React.useRef()
return (
<>
<Portal containerRef={containerRef}>
<div>Portal content</div>
</Portal>
<div ref={containerRef} />
</>
)
}
Use the disabled
prop to disable the portal. This will render the children in
the same DOM hierarchy.
import { Portal } from '@chakra-ui/react'
const Demo = () => {
return (
<Portal disabled>
<div>Will render the content in place</div>
</Portal>
)
}
During SSR, the Portal
component directly renders its content. If you run into
any mismatch warnings, we recommended conditionally rendering the Portal
component only on the client-side.
Prop | Default | Type |
---|---|---|
container | RefObject<HTMLElement> | |
disabled | boolean |