Mar*_*ile 13 javascript resize list reactjs react-window
我正在使用反应窗口来实现聊天消息列表,但我在尝试为每个项目设置权限时遇到了困难itemSize。碰巧的是,基于文本长度和窗口宽度的聊天消息并不总是有前缀高度(或者我可以用简单的方式计算的高度)。
我目前正在使用 aVariableSizeList并且代码如下所示
<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>
)}
Run Code Online (Sandbox Code Playgroud)
有没有办法将列表行的项目高度设置为其内容的实际高度?
这有点棘手,并且没有得到本期react-window讨论的正式支持。显然,解决这个问题的一种方法是使用并设置此via的大小。这里给出一个例子https://codesandbox.io/s/dynamic-size-of-react-window-list-items-64o9p?file=/src/ChatMessage.jsElement.getBoundingClientRect().heightElementitemSize