有没有办法通过 react-virtualized 将 ref 设置为 List ?

Posted

技术标签:

【中文标题】有没有办法通过 react-virtualized 将 ref 设置为 List ?【英文标题】:Is there a way to set a ref to List with react-virtualized? 【发布时间】:2021-02-14 00:07:21 【问题描述】:

我正在尝试通过使用 ref 来引用 react-virtualized 中的可滚动列表。但是我的 ref 总是将它的当前属性显示为未定义。有谁知道如何将 ref 与 react-virtualized List 一起使用?

这是我目前正在做的事情,但 listRef.current 始终未定义:

const listRef = useRef()

<List
      width=350
      height=400
      rowCount=listsprings.length
      rowHeight=100
      rowRenderer=rowRenderer
      style= outline: 'none' 
      ref=listRef
      />

【问题讨论】:

【参考方案1】:

您必须使用传递回调,因为它使用LegacyRef。

const listRef = useRef()

<List
      ref=(ref) =>  listRef.current = ref 
      width=350
      height=400
      rowCount=listsprings.length
      rowHeight=100
      rowRenderer=rowRenderer
      style= outline: 'none' 

/>

【讨论】:

此评论可能已过时,因为ref=listRef 适用于 9.21.x【参考方案2】:

当你使用 ref 时,你应该关心 "listRef.current" 而不仅仅是 "listRef"

【讨论】:

以上是关于有没有办法通过 react-virtualized 将 ref 设置为 List ?的主要内容,如果未能解决你的问题,请参考以下文章

如何滚动到通过 react-virtualized 呈现的 React 元素?

react 分页器 基于react-virtualized组件的分页器

React-virtualized 中对 registerChild 的 CellMeasurer 支持

React-virtualized - 是不是可以在窗口调整大小时更新 rowHeights?

React-virtualized 动态高度列表呈现最初堆叠的所有内容

react-virtualized WindowScroller 性能问题