mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-21 04:48:02 +08:00
4dbb0075bb
* docs: split shardProps * chore: update english * chore: update style * chore: update snap
69 lines
2.9 KiB
Markdown
69 lines
2.9 KiB
Markdown
---
|
||
category: Components
|
||
group: 数据展示
|
||
title: Popover
|
||
subtitle: 气泡卡片
|
||
description: 点击/鼠标移入元素,弹出气泡式的卡片浮层。
|
||
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*kfW5RrfF4L8AAAAAAAAAAAAADrJ8AQ/original
|
||
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*6b8fSKVVtXIAAAAAAAAAAAAADrJ8AQ/original
|
||
demo:
|
||
cols: 2
|
||
---
|
||
|
||
## 何时使用
|
||
|
||
当目标元素有进一步的描述和相关操作时,可以收纳到卡片中,根据用户的操作行为进行展现。
|
||
|
||
和 `Tooltip` 的区别是,用户可以对浮层上的元素进行操作,因此它可以承载更复杂的内容,比如链接或按钮等。
|
||
|
||
## 代码演示
|
||
|
||
<!-- prettier-ignore -->
|
||
<code src="./demo/basic.tsx">基本</code>
|
||
<code src="./demo/triggerType.tsx">三种触发方式</code>
|
||
<code src="./demo/placement.tsx">位置</code>
|
||
<code src="./demo/arrow.tsx">箭头展示</code>
|
||
<code src="./demo/arrow-point-at-center.tsx" debug>Arrow.pointAtCenter</code>
|
||
<code src="./demo/shift.tsx" iframe="300">贴边偏移</code>
|
||
<code src="./demo/control.tsx">从浮层内关闭</code>
|
||
<code src="./demo/hover-with-click.tsx">悬停点击弹出窗口</code>
|
||
<code src="./demo/render-panel.tsx" debug>_InternalPanelDoNotUseOrYouWillBeFired</code>
|
||
<code src="./demo/wireframe.tsx" debug>线框风格</code>
|
||
<code src="./demo/component-token.tsx" debug>组件 Token</code>
|
||
|
||
## API
|
||
|
||
通用属性参考:[通用属性](/docs/react/common-props)
|
||
|
||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||
| ------- | -------- | ---------------------------- | ------ | ---- |
|
||
| content | 卡片内容 | ReactNode \| () => ReactNode | - | |
|
||
| title | 卡片标题 | ReactNode \| () => ReactNode | - | |
|
||
|
||
<!-- 共同的 API -->
|
||
|
||
<embed src="../tooltip/shared/sharedProps.zh-CN.md"></embed>
|
||
|
||
## 注意
|
||
|
||
请确保 `Popover` 的子元素能接受 `onMouseEnter`、`onMouseLeave`、`onFocus`、`onClick` 事件。
|
||
|
||
## 主题变量(Design Token)
|
||
|
||
<ComponentTokenTable component="Popover"></ComponentTokenTable>
|
||
|
||
## FAQ
|
||
|
||
### 为何在严格模式中有时候会出现 `findDOMNode is deprecated` 这个警告?
|
||
|
||
这是由于 `rc-trigger` 的实现方式导致的,`rc-trigger` 强制要求 children 能够接受 ref,否则就会 fallback 到 findDOMNode,所以 children 需要是原生 html 标签,如果不是,则需要使用 `React.forwardRef` 把 `ref` 透传到原生 html 标签。
|
||
|
||
- `findDOMNode is deprecated` 重现:<https://codesandbox.io/p/sandbox/finddomnode-c5hy96>
|
||
- 使用 `forwardRef` 消除警告:<https://codesandbox.io/p/sandbox/no-finddomnode-warning-forked-gdxczs>
|
||
|
||
### 为何有时候 HOC 组件无法生效?
|
||
|
||
请确保 `Popover` 的子元素能接受 `onMouseEnter`、`onMouseLeave`、`onPointerEnter`、`onPointerLeave`、`onFocus`、`onClick` 事件。
|
||
|
||
更多问题,请参考 [Tooltip FAQ](/components/tooltip-cn#faq)。
|