我想使用 react-virtualized 呈现项目列表,但是有些项目可能会改变大小。
我添加了一个演示,其中每个项目都有一个按钮,当有人单击该按钮时,该项目需要展开并将以下项目推低: https ://plnkr.co/edit/GG2bSIC5M1Gj7BR1pOii
用例类似于 facebook 帖子,当有人发表评论时,它将扩大帖子并将其他帖子推低。
ReactDOM.render(
<List
className='List'
autoHeight
width={300}
height={400}
rowCount={list.length}
rowHeight={30}
rowRenderer={
({ index, isScrolling, key, style }) => (
<div
className='Row'
key={key}
style={style}
>
{list[index]}
<Expander /> /* contains the button, which when click it will expand more text*/
</div>
)
}
/>,
document.getElementById('example')
有什么办法可以做到这一点?
更新
我意识到必须有一种方法可以强制List
更新项目并重新计算位置。有一个带有InfiniteLoader
(react-virtualized example)的示例,它registerChild
在 List 中用作参考。似乎当 InfiniteLoader 从服务器接收到答案时,它能够强制列表重新渲染行。
我已经尝试了另一个forceUpdate
关于列表的示例,但是列表仍然没有更新。