场景,无论页面中添加多少元素,始终让table的高度自适应,这样在table设置了最大高度的情况,页面不用再出现多条滚动条。
// 计算table最大高度
export function getTableMaxH (tableEl,callback) {
var paginationH=24+32 //24是页码的高度 32是页码上下的边距,这里直接写死,也可进行js获取
const setH=()=>{
const appMainBox=document.querySelector('#appMainBox').getBoundingClientRect()
const table=document.querySelector(tableEl).getBoundingClientRect()
const res=appMainBox.height-table.top-paginationH
// console.log('paginationH',appMainBox.height,table.height,paginationH,res)
callback(res)
}
setH()
window.onresize=function(){
setH()
}
}
this.state = {
TableMaxH:300 //默认
}
// 使用
componentDidMount() {
this.fetchTableData();
getTableMaxH('#table',res=>{
this.setState({
TableMaxH:res
})
})
}
<Table columns={columns} scroll={{ y:this.state.TableMaxH}} />