使用具有最大宽度的 cellmeasurer 进行反应虚拟化?
React-Virtualized using cellmeasurer with a maximum width?
有什么方法可以使用具有最大列宽的 react-virtualized CellMeasurer
然后使高度扩展?
例如,我可能在网格的第一列中有一个 id 字段。这永远不会变得太大,但我想根据最大值调整它的大小。然后在第二列中我有一个文本字段,我不太确定它有多大。如果事实证明我当前的所有数据集在第二列中都有一个小值,我想根据最大值调整大小。如果它碰巧有一些较大的文本(超过一定宽度)我想使用最大宽度,然后扩展行的高度以容纳行文本。
根据我在文档和代码中看到的情况,不支持此类功能。如果是这种情况,我认为我最好的方法是使用稍微复杂一些的 _measure
函数来实现我自己的 CellMeasurer
。这听起来像是正确的做法吗?
您应该能够通过向呈现的单元格添加样式约束来执行此操作。 CellMeasurer 仅测量浏览器报告的内容 - CSS 控制浏览器的最大宽度。
React 也可能会冻结样式对象,因此请使用 spread 而不是直接修改:
style={{
...style,
maxWidth: 300
}}
有什么方法可以使用具有最大列宽的 react-virtualized CellMeasurer
然后使高度扩展?
例如,我可能在网格的第一列中有一个 id 字段。这永远不会变得太大,但我想根据最大值调整它的大小。然后在第二列中我有一个文本字段,我不太确定它有多大。如果事实证明我当前的所有数据集在第二列中都有一个小值,我想根据最大值调整大小。如果它碰巧有一些较大的文本(超过一定宽度)我想使用最大宽度,然后扩展行的高度以容纳行文本。
根据我在文档和代码中看到的情况,不支持此类功能。如果是这种情况,我认为我最好的方法是使用稍微复杂一些的 _measure
函数来实现我自己的 CellMeasurer
。这听起来像是正确的做法吗?
您应该能够通过向呈现的单元格添加样式约束来执行此操作。 CellMeasurer 仅测量浏览器报告的内容 - CSS 控制浏览器的最大宽度。
React 也可能会冻结样式对象,因此请使用 spread 而不是直接修改:
style={{
...style,
maxWidth: 300
}}