Redux react虚拟化CellMeasurer如何重新渲染具有动态高度的连接组件?

Redux react虚拟化CellMeasurer如何重新渲染具有动态高度的连接组件?,redux,react-virtualized,Redux,React Virtualized,react虚拟化项目使我能够高效地呈现非常大的组件列表。在我的项目中,列表项是容器组件,即连接到redux存储的组件。他们只知道自己的ID,容器组件负责获取所有相关数据,如正文、日期、用户名等 我面临的问题是计算这些组件的高度。React virtualized有一个用于计算动态高度的工具,但CellMeasurer测量组件默认状态的高度,在我的容器组件中为0,因为容器组件在第一次呈现时尚未获取数据 当容器加载内容时,有没有办法强制重新计算组件高度?react virtualized会主动缓存测

react虚拟化项目使我能够高效地呈现非常大的组件列表。在我的项目中,列表项是容器组件,即连接到redux存储的组件。他们只知道自己的ID,容器组件负责获取所有相关数据,如正文、日期、用户名等

我面临的问题是计算这些组件的高度。React virtualized有一个用于计算动态高度的工具,但CellMeasurer测量组件默认状态的高度,在我的容器组件中为0,因为容器组件在第一次呈现时尚未获取数据


当容器加载内容时,有没有办法强制重新计算组件高度?

react virtualized会主动缓存测量和位置数据以提高性能。它提供了一个API来重置特定行或列的数据。:)

你可能会发现浏览一下很有用。它强调的关键部分是,如果行(或列)大小可能发生变化,您需要首先让
CellMeasurer
知道如何重新测量行
resetMeasurements
重置所有测量值,但如果只有一行发生了更改,则使用
resetMeasurementForRow(index)
(或者,您可能猜到,
resetMeasurementForColumn(index)
)会更有效


接下来,您需要让
列表
(或
表格
网格
)知道大小也发生了变化,因为大小影响位置,这些组件缓存位置数据。如果您使用的是
表格
列表
,则您要使用的方法是
重新计算权重(索引)
。如果您使用的是
网格
,那么它将是
重新计算网格化({columnIndex,rowIndex})

react虚拟化积极缓存测量和定位数据以获得性能。它提供了一个API来重置特定行或列的数据。:)

你可能会发现浏览一下很有用。它强调的关键部分是,如果行(或列)大小可能发生变化,您需要首先让
CellMeasurer
知道如何重新测量行
resetMeasurements
重置所有测量值,但如果只有一行发生了更改,则使用
resetMeasurementForRow(index)
(或者,您可能猜到,
resetMeasurementForColumn(index)
)会更有效


接下来,您需要让
列表
(或
表格
网格
)知道大小也发生了变化,因为大小影响位置,这些组件缓存位置数据。如果使用的是
Table
List
则要使用的方法是
reporterwhights(index)
。如果您使用的是
网格
,那么它将是
重新计算网格({columnIndex,rowIndex})

谢谢Brian,你棒极了!这些方法是否已弃用?我似乎在代码库的任何地方都找不到ResetMeasures。Tom,您将要使用
CellMeasurer
。前者有方法
clear(row,col)
clearAll()
。谢谢Brian,你太棒了!这些方法是否已弃用?我似乎在代码库的任何地方都找不到ResetMeasures。Tom,您将要使用
CellMeasurer
。前者有方法
clear(row,col)
clearAll()