Tooltip文字提示

简单的文字提示气泡框。

何时使用

鼠标移入则显示提示,移出消失,气泡浮层不承载复杂文本和操作。

可用来代替系统默认的 title 提示,提供一个按钮/文字/操作的文案解释。

代码演示

Tooltip 文字提示 - 图1

基本

最简单的用法。

  1. import { Tooltip } from 'choerodon-ui/pro';
  2. ReactDOM.render(
  3. <Tooltip title="prompt text" theme="light">
  4. <span>Tooltip will show when mouse enter.</span>
  5. </Tooltip>,
  6. mountNode);

Tooltip 文字提示 - 图2

箭头指向

设置了 arrowPointAtCenter 后,箭头将指向目标元素的中心。

  1. import { Tooltip, Button } from 'choerodon-ui/pro';
  2. ReactDOM.render(
  3. <div>
  4. <Tooltip placement="topLeft" title="Prompt Text">
  5. <Button>Align edge / 边缘对齐</Button>
  6. </Tooltip>
  7. <Tooltip placement="topLeft" title="Prompt Text" arrowPointAtCenter>
  8. <Button>Arrow points to center / 箭头指向中心</Button>
  9. </Tooltip>
  10. </div>,
  11. mountNode);

Tooltip 文字提示 - 图3

主题

通过theme属性控制Tooltip的主题颜色。

显示红色错误信息时,建议使用亮色主题。

  1. import { Tooltip, Button, Icon } from 'choerodon-ui/pro';
  2. class Demo extends React.Component {
  3. state = {
  4. theme: 'dark',
  5. };
  6. handleLighten = () => {
  7. this.setState({
  8. theme: 'light',
  9. });
  10. }
  11. handleDarken = () => {
  12. this.setState({
  13. theme: 'dark',
  14. });
  15. }
  16. render() {
  17. return (
  18. <div>
  19. <Button onClick={this.handleLighten}>Light</Button>
  20. <Button onClick={this.handleDarken} color="dark">Dark</Button>
  21. <Tooltip
  22. theme={this.state.theme}
  23. title={<span style={{ color: 'red' }}><Icon type="error" />Prompt Text</span>}
  24. hidden={false}
  25. >
  26. <span>Change Theme</span>
  27. </Tooltip>
  28. </div>
  29. );
  30. }
  31. }
  32. ReactDOM.render(<Demo />, mountNode);

Tooltip 文字提示 - 图4

位置

位置有 12 个方向。

目前left和top类的位置有首次渲染错位的bug,right和bottom可以正常使用。

  1. import { Tooltip, Button } from 'choerodon-ui/pro';
  2. const text = <span>prompt text</span>;
  3. const buttonWidth = 70;
  4. ReactDOM.render(
  5. <div className="demo">
  6. <div style={{ marginLeft: buttonWidth, whiteSpace: 'nowrap' }}>
  7. <Tooltip placement="topLeft" title={text} theme="light">
  8. <Button>TL</Button>
  9. </Tooltip>
  10. <Tooltip placement="top" title={text}>
  11. <Button>Top</Button>
  12. </Tooltip>
  13. <Tooltip placement="topRight" title={text}>
  14. <Button>TR</Button>
  15. </Tooltip>
  16. </div>
  17. <div style={{ width: buttonWidth, float: 'left' }}>
  18. <Tooltip placement="leftTop" title={text}>
  19. <Button>LT</Button>
  20. </Tooltip>
  21. <Tooltip placement="left" title={text} theme="light">
  22. <Button>Left</Button>
  23. </Tooltip>
  24. <Tooltip placement="leftBottom" title={text}>
  25. <Button>LB</Button>
  26. </Tooltip>
  27. </div>
  28. <div style={{ width: buttonWidth, marginLeft: (buttonWidth * 4) + 24 }}>
  29. <Tooltip placement="rightTop" title={text} theme="light">
  30. <Button>RT</Button>
  31. </Tooltip>
  32. <Tooltip placement="right" title={text}>
  33. <Button>Right</Button>
  34. </Tooltip>
  35. <Tooltip placement="rightBottom" title={text}>
  36. <Button>RB</Button>
  37. </Tooltip>
  38. </div>
  39. <div style={{ marginLeft: buttonWidth, clear: 'both', whiteSpace: 'nowrap' }}>
  40. <Tooltip placement="bottomLeft" title={text} theme="light">
  41. <Button>BL</Button>
  42. </Tooltip>
  43. <Tooltip placement="bottom" title={text}>
  44. <Button>Bottom</Button>
  45. </Tooltip>
  46. <Tooltip placement="bottomRight" title={text}>
  47. <Button>BR</Button>
  48. </Tooltip>
  49. </div>
  50. </div>,
  51. mountNode);

Tooltip 文字提示 - 图5

受控

通过hidden属性控制Tooltip的行为。

设置hidden属性后,将不再监听鼠标悬浮等事件,Tooltip的显示与否完全取决于hidden属性。此特性可用于编程控制错误信息的显示。

  1. import { Tooltip, Button } from 'choerodon-ui/pro';
  2. class Demo extends React.Component {
  3. state = {
  4. hidden: true,
  5. };
  6. handleOpen = () => {
  7. this.setState({
  8. hidden: false,
  9. });
  10. }
  11. handleClose = () => {
  12. this.setState({
  13. hidden: true,
  14. });
  15. }
  16. render() {
  17. return (
  18. <div>
  19. <Button onClick={this.handleOpen}>Open</Button>
  20. <Button onClick={this.handleClose} color="red">Close</Button>
  21. <Tooltip
  22. hidden={this.state.hidden}
  23. title="Prompt Text"
  24. >
  25. <span>Under control</span>
  26. </Tooltip>
  27. </div>
  28. );
  29. }
  30. }
  31. ReactDOM.render(<Demo />, mountNode);

API

参数说明类型默认值
title提示文字string|ReactNode|() => ReactNode

共同的 API

以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。

参数说明类型默认值
arrowPointAtCenter箭头是否指向目标元素中心booleanfalse
autoAdjustOverflow气泡被遮挡时自动调整位置booleantrue
defaultHidden默认是否显隐booleantrue
mouseEnterDelay鼠标移入后延时多少才显示 Tooltip,单位:秒number0
mouseLeaveDelay鼠标移出后延时多少才隐藏 Tooltip,单位:秒number0.1
overlayClassName卡片类名string
overlayStyle卡片样式object
placement气泡框位置,可选 top left right bottom topLeft topRight bottomLeft bottomRight leftTop leftBottom rightTop rightBottomstringtop
trigger触发行为,可选 hover/focus/click/contextMenustringhover
hidden用于手动控制浮层显隐booleantrue
onHiddenChange显示隐藏的回调(hidden) => void

注意

请确保 Tooltip 的子元素能接受 onMouseEnteronMouseLeaveonFocusonClick 事件。