[英]react-window set item size according to content height
我正在使用 react-window 來實現一個聊天消息列表,但是我在嘗試為每個項目設置正確的itemSize
時遇到了困難。 碰巧的是,基於他的文本長度和 window 寬度的聊天消息並不總是前綴高度(或我可以以簡單方式計算的高度)。
我目前正在使用VariableSizeList
,代碼如下所示
<AutoSizer>
{({ height, width }) => (
<List
height={height}
itemCount={messages.length}
itemSize={(index) => messages[index].isReply ? 118 : 79} /* THIS IS CURRENTLY WRONG, DOESN'T PICK ALL CASES!*/
width={width}
>
{({ index, style }) => (
<ChatMessage
key={index}
style={style}
...
/>
)}
</List>
)}
有沒有辦法將列表行的項目高度設置為其內容的實際高度?
這有點棘手,並且沒有得到本期討論的react-window
的官方支持。 顯然,一種欺騙方法是使用Element.getBoundingClientRect().height
並通過itemSize
設置此Element
的大小。 這里給出了一個例子https://codesandbox.io/s/dynamic-size-of-react-window-list-items-64o9p?file=/src/ChatMessage.js
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.