【发布时间】:2019-02-16 04:28:01
【问题描述】:
当我的 redux 存储发生更改时,我正在尝试更新列表,但由于某些奇怪的原因它不是。我必须手动刷新页面才能看到我的更改。这是我的 List 组件和 rowRenderer 的 sn-p。
<InfiniteLoader
isRowLoaded={this._isRowLoaded}
loadMoreRows={this._loadMoreRows}
rowCount={visibleRequest.length}
>
{({ onRowsRendered, registerChild }) => (
<AutoSizer>
{({ height, width }) => (
<List
ref={registerChild}
className="List"
height={height}
rowHeight={listRowHeight}
onRowsRendered={onRowsRendered}
rowCount={rowCount}
rowRenderer={this._rowRenderer}
width={width}
/>
)}
</AutoSizer>
)}
</InfiniteLoader>
_rowRenderer = ({ index, key, style }) => {
const { loadedRowsMap, selected } = this.state;
const row = this.getDatum(index);
let content;
if (loadedRowsMap[index] === STATUS_LOADED) {
content = row;
} else {
content = (
<div className="placeholder" style={{ width: _.random(100, 200) }} />
);
}
return (
<PendingChat
key={key}
content={content}
style={style}
row={row}
{...this.props}
/>
);
};
【问题讨论】:
-
List的任何道具是否发生了变化?我看到你有rowCount={visibleRequest.length}和rowCount={rowCount}。rowCount是否保持不变?尝试将一个道具传递给List,当您想要触发重新渲染时该道具会发生变化,如果您不想更改rowCount,它可以是除此之外的任何道具
标签: javascript reactjs redux react-redux react-virtualized