reactjs - 渲染后如何获取表格列宽?
问题描述
我正在尝试在表中制作粘性标题,为了做到这一点,复制了表头并使容器位置相对于表 div 是绝对的。但问题是表格单元格的宽度不一样。我想获取表格中每一列的宽度并设置粘性标题列的宽度以使它们相同。渲染后怎么办?
这是代码结构:
<div className="tableDataContainer">
<div className="stickyHeader">
<Table>
<TableHead></TableHead>
</Table>
</div>
<Table>
<TableHead></TableHead>
<TableBody></TableBody>
</Table>
</div>
解决方案
你可以在 React 中使用ref
prop 和useRef
hook 在渲染后获取一个对象的宽度。就像是:
const refElem = React.useRef(0);
...
<button ref={refElem}>This is a button 1</button> //<-- I'm using a button just to make an example
然后访问width
只是调用refElem.style.width
。
推荐阅读
- javascript - How do I use an Axios response as a parameter in a for loop?
- python - Testing membership in list of Enum fails
- php - 如何根据postgresql查询中的日期在“where”子句中动态传递季度值
- vue.js - v-select/Vue:如何输入不在列表中的值?
- mysql - Laravel 复合主键关系
- javascript - 在java脚本中处理对象数组的有效方法
- sql-server - 如何在 SQL Server 中缩短此 LIKE 语句?
- vue.js - axios then 函数也确实catch?
- javascript - 有没有办法默认 HTML5 视频的来源?
- javascript - javascript中的引用错误并尝试catch