【React】「react-infinite-scroller」で実装した要素の親要素にoverflow:scroll;を指定する

先日、React で無限スクロールを簡単に実装できるライブラリ「react-infinite-scroller」をご紹介しましたが、こちらの記事内で、親要素に overflow: scroll; を指定していると、要素を一番下までスクロールしても、追加要素を読み込む関数が実行されないという現象が発生している、と記載しました。
が、react-infinite-scroller の PropsuseWindowfalse を指定することで、親要素に overflow: scroll; を指定しても追加読み込みの関数が呼び出されることが分かりました!

サンプルコードはこちらです。

<div className="scroll">
  <InfiniteScroll
    pageStart={0}
    loadMore={["追加要素を取得する処理"]}
    hasMore={true}
    initialLoad={false}
    useWindow={false}
    loader={<div className="loader" key={0}>Loading ...</div>}>
    {items}
  </InfiniteScroll>
</div>
.scroll {
  height: 500px;
  overflow: scroll;
}

6行目に追加した useWindow={false} がそうです。
こちらを指定することで、一番下までスクロールした時に loadMore に指定された関数が実行されるようになりました。
これでレイアウトが綺麗に整いました。
別に overflow: auto; でも、大きく画面が崩れるということはないのですが、個人的にはすごく気になっていたんですよね。
修正できて良かったです。

 

以上、React のライブラリ「react-infinite-scroller」で実装した無限スクロールの要素の親要素に overflow:scroll; を指定する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG