使用高级 Chakra UI 组件更快地构建 💎

了解更多
跳到内容
文档演练场指南博客
赞助商

Portal

用于在 DOM 层级之外渲染元素。

用法

Portal 使用 ReactDOM.createPortal API 将元素渲染到 document.body 的末尾或指定容器中。

import { Portal } from "@chakra-ui/react"
<Portal>
  <div>Portal content</div>
</Portal>

示例

自定义容器

使用 container 属性将 Portal 渲染到自定义容器中。

import { Portal } from "@chakra-ui/react"

const Demo = () => {
  const containerRef = React.useRef()
  return (
    <>
      <Portal container={containerRef}>
        <div>Portal content</div>
      </Portal>
      <div ref={containerRef} />
    </>
  )
}

禁用

使用 disabled 属性禁用 Portal。这将在相同的 DOM 层级中渲染子元素。

import { Portal } from "@chakra-ui/react"

const Demo = () => {
  return (
    <Portal disabled>
      <div>Will render the content in place</div>
    </Portal>
  )
}

服务器渲染

在 SSR 期间,Portal 组件直接渲染其内容。如果您遇到任何不匹配警告,我们建议仅在客户端有条件地渲染 Portal 组件。

属性

属性默认值类型
container
RefObject<HTMLElement | null>

disabled
boolean

上一个

Presence

下一个

Show