2019-10-18
描述
渲染一个信息提示组件。
- 使用
React.useState()hook 创建一个默认值为false的状态变量show - 返回一个包含了两个
<div>的<div>元素,他们分别用于显示提示和传递给组件的children - 监听
onMouseEnter和onMouseLeave方法,分别用于show变量的切换 - 当然,你也可以直接使用 CSS 交互 - 信息提示 来实现
实现
.tooltip {
position: relative;
background: rgba(0, 0, 0, 0.7);
color: white;
visibility: hidden;
padding: 5px;
border-radius: 5px;
}
.tooltip-arrow {
position: absolute;
top: 100%;
left: 50%;
border-width: 5px;
border-style: solid;
border-color: rgba(0, 0, 0, 0.7) transparent transparent;
}
function Tooltip({ children, text, ...rest }) {
const [show, setShow] = React.useState(false);
return (
<div>
<div className="tooltip" style={show ? { visibility: 'visible' } : {}}>
{text}
<span className="tooltip-arrow" />
</div>
<div {...rest} onMouseEnter={() => setShow(true)} onMouseLeave={() => setShow(false)}>
{children}
</div>
</div>
);
}
使用
ReactDOM.render(
<Tooltip text="Simple tooltip">
<button>Hover me!</button>
</Tooltip>,
document.getElementById('root')
);
ME!
链滴