如何解决反应虚拟化检测列表底部的滚动
我试图找出 List 组件何时在滚动时到达底部。滚动事件在开始时仅触发一次,之后它再也不会调用。如何检测滚动到达列表底部或最后一项。
const onScroll = (event) => {
console.log(event);
console.log("called");
}
return (
<Box className={classes.root}>
{((products && products.length > 0) || loadingProducts) && (
<LzCard
onscroll={onScroll}
style={{height: '100%'}}
showShadow={false}
loading={loadingProducts}
>
<Box classes={classes.scrollBox}>
<InfiniteLoader
isRowLoaded={({ index }) => {
return !!products[index];
}}
loadMoreRows={({ startIndex,stopIndex }) => {
return Promise.resolve();
}}
rowCount={100000}
threshold={15}
>
{({ onRowsRendered,registerChild }) => (
<AutoSizer disableHeight>
{({ width }) => (
<div>
<List
onScroll={onScroll}
ref={registerChild}
rowCount={products.length}
height={products.length * 100}
width={width}
rowHeight={100}
onRowsRendered={onRowsRendered}
roWrenderer={ProductRow}
/>
</div>
)}
</AutoSizer>
)}
</InfiniteLoader>
<BottomScrollListener onBottom={bottomScrollCallback} />
</Box>
</LzCard>
)}
{isLoadingMore && (
<Box display="flex" justifyContent="center" mt={0} mb={0}>
<CircularProgress size={24} />
</Box>
)}
{showMoreOptionsPopover && (
<LzActionsPopover
open={showMoreOptionsPopover}
anchorEl={moreOptionsAnchor}
width={255}
onClose={handleMoreOptionsPopoverClose}
actions={[
new LzPopoverAction(
'View product page',LzPopoverActionType.Default,'view'
)
]}
onActionClicked={handlePopoverActionClicked}
/>
)}
</Box>
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。