2
タイトルが示すように、InfiniteLoaderはアイテムをレンダリングしません。私はすべてが正しく設定されていると思いますし、コレクションにはレンダリングするアイテムがたくさんありますが、ページには何も表示されていません。ここではこの方法をレンダリングです:リアクション仮想化されたInfiniteLoaderは何もレンダリングしません
render() {
const rows = this.state.rows
const rowsCount = this.state.hasNextPage ? rows.length + 1 : rows.length
// Only load 1 page of items at a time.
// Pass an empty callback to InfiniteLoader in case it asks us to load more than once.
const loadMoreRows = this.state.nextPageLoading ?() => {} : this.loadNextPage
// Every row is loaded except for our loading indicator row.
const isRowLoaded = ({ index }) => !this.state.hasNextPage || index < rows.length
// Render a list item or a loading indicator.
const rowRenderer = ({ index, key, style }) => {
if (!isRowLoaded({ index })) {
console.log("LOADING") // NEVER GETS CALLED
return(
<div style={style}>
Loading...
</div>
)
} else {
console.log(rows[index]) // NEVER GETS CALLED
return(
<MyRow key={index}
row={rows[index]} />
)
}
}
console.log(rows) // SHOWS AN ARRAY WITH PLENTY OF ROWS
return(
<InfiniteLoader
isRowLoaded={isRowLoaded}
loadMoreRows={loadMoreRows}
rowCount={rowsCount}>
{({ onRowsRendered, registerChild }) => (
<AutoSizer>
{({ height, width }) => (
<List
height={height}
width={width}
ref={registerChild}
onRowsRendered={onRowsRendered}
rowCount={this.state.totalCount}
rowHeight={46}
rowRenderer={rowRenderer}
/>
)}
</AutoSizer>
)}
</InfiniteLoader>
);
}
この問題を再現するPlnkrを提供できますか? – brianvaughn
@brianvaughn私ができることを見ていきます! – trevorhinesley
@brianvaughn https://plnkr.co/edit/TP5BTGNA0Me1Rz7Q7Ge9?p=preview – trevorhinesley