react实现滚动加载

首先相关依赖包

npm i react-infinite-scroll-component

引入

import InfiniteScroll from 'react-infinite-scroll-component'

import InfiniteScroll from 'react-infinite-scroll-component'


const App = () => {
  const [shoplist, setshoplist] = useState([]);
  const [xuanlist, setxuanlist] = useState([]);
  const [xiala, setxiala] = useState(true);
  const requestList =  () => {
    let autotime = 3
    const auto_timetimer = setInterval(async() => {
      autotime -= 1
      if (autotime <= 0) {
        let { data } = await axios.get('/data2.json')
        let copy = [...xuanlist, ...data.result.list]
        setshoplist([...copy])
        setxuanlist([...copy])
        setxiala(false)
        clearInterval(auto_timetimer)
      }
    }, 1000)
  }
  return (
    <div id='app' onChange={(ev) => appwidth(ev)}>
      <div className='app-boonm'>
        <div className='app-boonm-three'>
          <div className='app-boonm-one'>
            <InfiniteScroll
              dataLength={xuanlist.length}
              next={requestList}
              hasMore={xiala}
              endMessage={
                <p style={{ textAlign: 'center' }}>
                  <b>Yay! You have seen it all</b>
                </p>
              }
              loader={<h4>Loading...</h4>}
            >
              {
                xuanlist.map(item => (
                  <div key={item._id} className='pin'>
                    <img style={{ width: "100%" }} alt='123' src={'/img/' + item.productImage} />
                    <div>{item.productName}</div>
                    <div>¥{item.salePrice}</div>
                    <button className='btn' onClick={() => console.log(item)}>加入购物车</button>
                  </div>
                ))
              }
            </InfiniteScroll>
          </div>
        </div>
      </div>
    </div>
  );
}

export default App;

实现效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

筱闯~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值