最終效果內容以下
node
class EllipsisTooltip extends React.Component { constructor(props){ super(props); this.state={ visible: false, DtStyle:{}, DtClass:'', } } componentDidMount(){ this.getItemWidth() } getItemWidth=()=>{ if(this.container){ this.setState({ DtStyle:{width:`${this.container.clientWidth}px`}, DtClass:'NowrapAndTitle' }) } } render () { const {DtStyle,DtClass}=this.state; return ( <div className="PublicTableTooltip"> <Tooltip placement="topLeft" title={this.props.title} overlayClassName="ItemPublicTableTooltip"> <div ref={node => this.container = node} style={DtStyle} className={DtClass}>{this.props.children}</div> </Tooltip> </div> ) } } export default EllipsisTooltip
2.設置表格內的樣式this
.PublicTableTooltip{ .NowrapAndTitle{ // 不換行顯示。。。 text-align: left; overflow: hidden; -o-text-overflow: ellipsis; text-overflow: ellipsis; white-space: nowrap; } } .ItemPublicTableTooltip{ .ant-tooltip-inner{ background-color: rgba(24, 145, 150, 0.75); } .ant-tooltip-arrow{ border-top-color: rgba(24, 145, 150, 0.75); } }
3.基本功能實現哪裏須要哪裏調用便可spa
import EllipsisTooltip from '../../../xxx/xxx/TableTools';
{ title: '子項目名稱', dataIndex: 'ItemProjName',render:text=> <EllipsisTooltip title={text}> {text} </EllipsisTooltip>}
謝謝!code