React-virtualized List 和 CellMeasurer 的行高是错误的

Zac*_*urt 5 reactjs react-virtualized

有人可以看一下我的吗react-virtualized设置吗?我确信它的设计不正确,因为单元高度没有正确测量。

https://gist.github.com/zackster/31fb5a983a33b303626cd8ae9dee3b94

我是 React.js 的新手(这是我在 React 中的第一个项目,所以一些糟糕的设计可能归因于此)。我将测量值​​传递到 ChatHistoryCell 中,后者将其传递到各个子组件中,这些子组件不可避免地会在各自的 componentDidMount 事件上调用它。

我对此基本上有三个主要错误。

  1. 我希望它在第一次加载后立即滚动到底部。不知道该怎么做?该组件似乎重新渲染了很多,所以答案可能涉及状态标志?您会注意到当前的要点已this._list.scrollToRow(selectedThread.chat_log.length - 1);包含componentDidUpdate()但不起作用

  2. 计算出的行高通常是非常错误的。

  3. 如果我调整窗口的宽度,然后调用这些方法:

        selectedConversation.cellMeasurerCache.clearAll();
        selectedConversation.cellMeasurer.resetMeasurements();
        selectedConversation.listRef.recomputeRowHeights();
        selectedConversation.listRef.forceUpdateGrid();
Run Code Online (Sandbox Code Playgroud)

调整大小后,看起来很糟糕。但是,如果我滚动到视图之外,然后返回视图,它看起来不错并调整为新的宽度。