Dang
Dang
thanks
我找到原因了,是因为table计算content高度的时候用的是class选择器,这样当expand展开时就会把expand中的table的row也给获取到,所以计算出来的高度就会大于实际高度。 line 88 :src/utils/useTableDimension.ts const rows = table?.querySelectorAll(`.${prefix?.('row')}`) || []; 虽然找到原因,但是没想到比较好的解决办法,等我想好了再来回复。
一个比较hack的方法使用classPrefix属性,设置 classPrefix='products-table',但是这样table样式会丢失,所以需要把table的样式重新导出来。如下所示。修改rs为 'products-table'中'-table'前的单词就好。这里是 products,这样就没问题了。注意classPrefix中「-table」是必须的。 ``` @import 'rsuite-table/lib/less/themes.less'; .products { @import 'rsuite-table/lib/less/variables.less'; @import 'rsuite-table/lib/less/functions.less'; @import 'rsuite-table/lib/less//loader.less'; @import 'rsuite-table/lib/less/table.less'; @import 'rsuite-table/lib/less/treetable.less'; @import 'rsuite-table/lib/less/scrollbar.less'; @import 'rsuite-table/lib/less/column-group.less'; } ```
@simonguo 我觉得最好的解决办法还是修改下获取rows的方法,通过统一的class大概率会出现问题,可以给table的row随机生成一个hash,通过hash来查会好一点。