react中监听div滚动条滚动到底部时,请求新数据刷新页面

<div className={'main-content'} key={'main-content'}
     style={{height: scrollerHeight, overflowY: 'scroll'}}
     ref={c => {
         this.scrollRef = c;
     }}
     onScrollCapture={() => this.onScrollHandle()}
>
    <Table
        onRow={record => {
            return {
                onClick: (e) => {},
                onDoubleClick: (e) => {},
                onContextMenu: (e) => {},
            };
        }}
        rowSelection={rowSelection}
        pagination={false}
        columns={columns}
        dataSource={fileList}/>
</div>
/*当前data数据显示完且滚动到底部时更新数据*/
onScrollHandle = () => {
    const scrollTop = this.scrollRef.scrollTop;
    const clientHeight = this.scrollRef.clientHeight;
    const scrollHeight = this.scrollRef.scrollHeight;
    const isBottom = scrollTop + clientHeight === scrollHeight;
    let {totalElements,fileList, page} = this.state;
    if (isBottom && fileList.length < totalElements) {
        this.getFileList({page: page + 1, size: 100, parentId: '0'});
    }
};
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过监听`window`对象的`scroll`事件来实现滚动条滚动的操作。具体实现步骤如下: 1. 在组件的`state`添加一个`showButton`属性,用来控制按钮的显示和隐藏。 2. 在组件的`componentDidMount`生命周期函数,调用`window.addEventListener`方法,监听`scroll`事件。 3. 在监听回调函数,获取当前滚动条的位置,判断是否需要显示按钮,并将`showButton`属性设置为相应的值。 4. 在组件的`render`函数,根据`showButton`属性的值来决定是否渲染按钮。 示例代码如下: ```jsx import React, { Component } from 'react'; class ScrollButton extends Component { constructor(props) { super(props); this.state = { showButton: false }; this.handleScroll = this.handleScroll.bind(this); } componentDidMount() { window.addEventListener('scroll', this.handleScroll); } componentWillUnmount() { window.removeEventListener('scroll', this.handleScroll); } handleScroll() { const { showButton } = this.state; const scrollTop = document.documentElement.scrollTop || document.body.scrollTop; if (scrollTop > 100 && !showButton) { this.setState({ showButton: true }); } else if (scrollTop <= 100 && showButton) { this.setState({ showButton: false }); } } render() { const { showButton } = this.state; return ( <div> {showButton && <button onClick={this.handleClick}>回到顶部</button>} </div> ); } } export default ScrollButton; ``` 在上面的代码,当滚动条滚动距离大于100,显示按钮;当滚动条滚动距离小于等于100,隐藏按钮。你可以根据实际需求来调整这个值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值