我正在迁移聊天组件以使用虚拟化的React,但是在我当前的实现中,我需要使用包含 recomputeRowHeights , forceUpdate , forceUpdateGrid的listRef 。因为在我的实现中,一条消息不是单个项目,而是最近5秒钟内发送的一堆消息。因此,行高增加了,但列表高度却没有。
<div class="item">
<div>
//user's information
</div>
<div>
<div class="message">
</div>
// repeat to the last messages sent
</div>
</div>
当最后一条消息的计数发生变化时,我发现调整列表高度的方法是在寻找,因此我重新计算了最后一行并请求更新列表高度,如果没有它,则行高会增加并且行不会完整显示。
但是在当前实现中,要知道是否已读取消息,我们向scoll添加一个事件,并调整大小并计算该项目是否在视口中,因此我需要访问ref元素以调用addEventListner。 我找到了这个issue,但是通过这种方式,我找到了一种访问列表引用的方法。