问题描述
重新渲染包含InfiniteLoader
和List
组件的AutoSizer
组件的正确方法是什么。它的工作方式在我们的Child.js
组件的父组件中,当用户单击父组件中的特定按钮时,我希望整个子组件重新呈现其中包含的InfiniteLoader
。例如,子组件Child.js
将在其InfiniteLoader
方法中包含render()
并清除所有行,以便可以重新填充新数据。它与预先清除InfiniteLoader的缓存有关吗?下面显示了InfiniteLoader的示例及其设置方式。
state = {
listofResults: [],apiPage: 1,nextPageLoading: false,};
cache = new CellMeasurerCache({
defaultHeight: 200,fixedWidth: true,});
setListRef = ref => {
this._list = ref;
this.registerList(ref);
};
render() {
return (
<div className='infinite-loader-container'>
<InfiniteLoader
isRowLoaded={this.isRowLoaded}
loadMoreRows={loadMoreRows}
rowCount={this.state.listofResults.length}
ref={ref => (this.infiniteLoaderRef = ref)}
>
{({onRowsRendered,registerChild}) => {
this.registerList = registerChild;
return (
<div className='full-text-search-list-container'>
<AutoSizer>
{({height,width}) => {
return(
<List
rowHeight={this.cache.rowHeight}
rowCount={this.state.listofResults.length}
overscanRowCount={5}
ref={this.setListRef}
deferredMeasurementCache={this.cache}
onRowsRendered={onRowsRendered}
height={height}
width={width}
roWrenderer={this.roWrenderer}
/>
);
}}
</AutoSizer>
</div>
);
}}
</InfiniteLoader>
</div>
)
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)