2016-03-31 14:17:09 +08:00
---
category: Components
2022-11-09 12:28:04 +08:00
group: 数据展示
2016-09-21 11:28:38 +08:00
title: Tooltip
2024-03-22 14:22:42 +08:00
subtitle: 文字提示
description: 简单的文字提示气泡框。
2024-01-29 14:50:36 +08:00
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*9LKlRbWytugAAAAAAAAAAAAADrJ8AQ/original
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*bCbPTJ7LQngAAAAAAAAAAAAADrJ8AQ/original
2022-11-09 12:28:04 +08:00
demo:
cols: 2
2016-03-31 14:17:09 +08:00
---
2015-05-27 15:43:29 +08:00
2015-06-03 17:08:43 +08:00
## 何时使用
2015-05-27 15:43:29 +08:00
2015-06-03 17:48:52 +08:00
鼠标移入则显示提示,移出消失,气泡浮层不承载复杂文本和操作。
2020-11-08 15:04:02 +08:00
可用来代替系统默认的 `title` 提示,提供一个 `按钮/文字/操作` 的文案解释。
2015-06-03 17:52:44 +08:00
2022-11-09 12:28:04 +08:00
## 代码演示
2022-11-17 17:31:26 +08:00
<!-- prettier - ignore -->
2022-11-09 12:28:04 +08:00
< code src = "./demo/basic.tsx" > 基本< / code >
< code src = "./demo/placement.tsx" > 位置< / code >
2023-01-19 11:21:05 +08:00
< code src = "./demo/arrow.tsx" > 箭头展示< / code >
2024-07-11 10:03:12 +08:00
< code src = "./demo/shift.tsx" iframe = "300" > 贴边偏移< / code >
2022-11-09 12:28:04 +08:00
< code src = "./demo/auto-adjust-overflow.tsx" debug > 自动调整位置< / code >
< code src = "./demo/destroy-tooltip-on-hide.tsx" debug > 隐藏后销毁< / code >
< code src = "./demo/colorful.tsx" > 多彩文字提示< / code >
< code src = "./demo/render-panel.tsx" debug > _InternalPanelDoNotUseOrYouWillBeFired< / code >
2023-03-05 17:51:19 +08:00
< code src = "./demo/debug.tsx" debug > Debug< / code >
2023-11-09 17:15:21 +08:00
< code src = "./demo/disabled.tsx" > 禁用< / code >
< code src = "./demo/disabled-children.tsx" debug > 禁用子元素< / code >
2022-11-09 12:28:04 +08:00
2015-06-03 17:52:44 +08:00
## API
2023-08-08 18:27:48 +08:00
通用属性参考:[通用属性](/docs/react/common-props)
2021-06-25 11:04:00 +08:00
| 参数 | 说明 | 类型 | 默认值 |
| ----- | -------- | ---------------------------- | ------ |
| title | 提示文字 | ReactNode \| () => ReactNode | - |
2016-12-22 12:00:57 +08:00
### 共同的 API
2024-12-02 23:03:44 +08:00
< embed src = "./shared/sharedProps.zh-CN.md" > < / embed >
2017-01-22 14:26:46 +08:00
2023-08-30 23:02:35 +08:00
## 主题变量( Design Token)
2023-04-11 10:25:24 +08:00
< ComponentTokenTable component = "Tooltip" > < / ComponentTokenTable >
2023-07-25 11:38:38 +08:00
## FAQ
2024-10-03 15:04:19 +08:00
### 为何在严格模式中有时候会出现 `findDOMNode is deprecated` 这个警告?
2024-02-19 13:42:05 +08:00
这是由于 `rc-trigger` 的实现方式导致的,`rc-trigger` 强制要求 children 能够接受 ref, 否则就会 fallback 到 findDOMNode, 所以 children 需要是原生 html 标签,如果不是,则需要使用 `React.forwardRef` 把 `ref` 透传到原生 html 标签。
2024-10-03 15:04:19 +08:00
- `findDOMNode is deprecated` 重现:< https: // codesandbox . io / p / sandbox / finddomnode-c5hy96 >
- 使用 `forwardRef` 消除警告:< https: // codesandbox . io / p / sandbox / no-finddomnode-warning-forked-gdxczs >
2023-07-25 11:38:38 +08:00
### 为何有时候 HOC 组件无法生效?
2017-01-22 14:26:46 +08:00
2023-07-28 17:39:38 +08:00
请确保 `Tooltip` 的子元素能接受 `onMouseEnter` 、`onMouseLeave`、`onPointerEnter`、`onPointerLeave`、`onFocus`、`onClick` 事件。
2023-07-25 11:38:38 +08:00
### placement 的行为逻辑是什么?
当屏幕空间足够时,会按照 `placement` 的设置进行弹层。当空间不足时则会取反向位置进行弹层(例如 `top` 不够时,会改为 `bottom` , `topLeft` 不够时会改为 `bottomLeft` )。单一方向如 `top` `bottom` `left` `right` 当贴边时进行自动位移:
< img alt = "shift" height = "200" src = "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*sxaTTJjLtIMAAAAAAAAAAAAADrJ8AQ/original" / >
当设置为边缘对齐方向如 `topLeft` `bottomRight` 等,则会仅做翻转而不做位移。
2023-09-22 15:45:22 +08:00
### 为何 Tooltip 的内容在关闭时不会更新?
Tooltip 默认在关闭时会缓存内容,以防止内容更新时出现闪烁:
```jsx
// `title` 不会因为 `user` 置空而闪烁置空
< Tooltip open = {user} title = {user?.name} / >
```
< div >
< img alt = "no blink" height = "50" src = "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*KVx7QLOYwVsAAAAAAAAAAAAADrJ8AQ/original" / >
< / div >
如果需要在关闭时也更新内容,可以设置 `fresh` 属性(例如 [#44830 ](https://github.com/ant-design/ant-design/issues/44830 ) 中的场景):
```jsx
< Tooltip open = {user} title = {user?.name} fresh / >
```
< div >
< img alt = "no blink" height = "50" src = "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*rUbsR4xWpMsAAAAAAAAAAAAADrJ8AQ/original" / >
< / div >