react 16.8.x之后的版本 React Hooks

推荐阅读官方文档
https://zh-hans.reactjs.org/docs/hooks-intro.html

  • useRef/useState
//使用hooks中的方法封装 Ellipsis 组件
import React, { useState, useRef } from 'react';
import { Tooltip } from 'antd';
import './Ellipsis.less';
export default function Ellipsis(props) {
  const ele = useRef(null);
  const [visible, setVisible] = useState(false);
  const handleMouseEnter = () => {
    if (ele.current.clientWidth < ele.current.scrollWidth) {
      setVisible(true);
    } else {
      setVisible(false);
    }
  };
  return (
    <Tooltip title={props.title} visible={visible} trigger="hover">
      <div
        className="ellipsis"
        ref={ele}
        onMouseEnter={handleMouseEnter}
        onMouseLeave={() => setVisible(false)}
      >
        {props.children}
      </div>
    </Tooltip>
  );
}

参考资料

React Hooks全面理解教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。