React-virtualized 中对 registerChild 的 CellMeasurer 支持
Posted
技术标签:
【中文标题】React-virtualized 中对 registerChild 的 CellMeasurer 支持【英文标题】:CellMeasurer support of registerChild in react-virtualized 【发布时间】:2020-08-11 00:09:39 【问题描述】:在 CellMeasurer 中使用渲染道具 registerChild 作为 ref 似乎被 react-virtualized 忽略:警告 findDOMNode is deprecated 仍然收到。
那条评论:
https://github.com/bvaughn/react-virtualized/issues/1353#issuecomment-569814307 让我觉得这个修复已经 4 个月大了,最新版本的 react-virtualized 是 6 个月前发布的
虽然文档中已经提到过 https://github.com/bvaughn/react-virtualized/blob/master/docs/CellMeasurer.md#using-registerchild,但错误地:
(registerChild) => (
<div
style=
...style,
height: 35,
whiteSpace: 'nowrap'
>
content
</div>
)
div 似乎缺少 ref=registerChild ! 无论如何,在 div 上有或没有 ref=registerChild, 仍然收到警告 findDOMNode 已弃用
【问题讨论】:
【参考方案1】:registerChild 的目的是为 cellMeasurer 提供一个指向子组件的引用,从而无需调用 findDomNode。目前没有使用 registerChild 变量,需要添加 set 子组件的 ref 到 registerChild。
(registerChild) => (
<div
ref=registerChild
style=
...style,
height: 35,
whiteSpace: 'nowrap'
>
content
</div>
)
【讨论】:
以上是关于React-virtualized 中对 registerChild 的 CellMeasurer 支持的主要内容,如果未能解决你的问题,请参考以下文章
如何滚动到通过 react-virtualized 呈现的 React 元素?
react 分页器 基于react-virtualized组件的分页器
React-virtualized - 是不是可以在窗口调整大小时更新 rowHeights?
React-virtualized 动态高度列表呈现最初堆叠的所有内容