Skip to content

Commit 16783fe

Browse files
authored
docs: infinite scroll example uses react-intersection-observer (TanStack#3410)
1 parent c6594df commit 16783fe

File tree

3 files changed

+12
-53
lines changed

3 files changed

+12
-53
lines changed

examples/load-more-infinite-scroll/hooks/useIntersectionObserver.js

Lines changed: 0 additions & 38 deletions
This file was deleted.

examples/load-more-infinite-scroll/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"next": "9.3.2",
1010
"react": "16.13.0",
1111
"react-dom": "16.13.0",
12+
"react-intersection-observer": "^8.33.1",
1213
"react-query": "^3.5.0"
1314
},
1415
"scripts": {

examples/load-more-infinite-scroll/pages/index.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
import React from 'react'
22
import Link from 'next/link'
33
import axios from 'axios'
4-
4+
import { useInView } from 'react-intersection-observer'
55
import { useInfiniteQuery, QueryClient, QueryClientProvider } from 'react-query'
66
import { ReactQueryDevtools } from 'react-query/devtools'
77

8-
//
9-
10-
import useIntersectionObserver from '../hooks/useIntersectionObserver'
11-
128
const queryClient = new QueryClient()
139

1410
export default function App() {
@@ -20,6 +16,8 @@ export default function App() {
2016
}
2117

2218
function Example() {
19+
const { ref, inView } = useInView()
20+
2321
const {
2422
status,
2523
data,
@@ -38,18 +36,16 @@ function Example() {
3836
return res.data
3937
},
4038
{
41-
getPreviousPageParam: firstPage => firstPage.previousId ?? false,
42-
getNextPageParam: lastPage => lastPage.nextId ?? false,
39+
getPreviousPageParam: firstPage => firstPage.previousId ?? undefined,
40+
getNextPageParam: lastPage => lastPage.nextId ?? undefined,
4341
}
4442
)
4543

46-
const loadMoreButtonRef = React.useRef()
47-
48-
useIntersectionObserver({
49-
target: loadMoreButtonRef,
50-
onIntersect: fetchNextPage,
51-
enabled: !!hasNextPage,
52-
})
44+
React.useEffect(() => {
45+
if (inView) {
46+
fetchNextPage()
47+
}
48+
}, [inView])
5349

5450
return (
5551
<div>
@@ -91,7 +87,7 @@ function Example() {
9187
))}
9288
<div>
9389
<button
94-
ref={loadMoreButtonRef}
90+
ref={ref}
9591
onClick={() => fetchNextPage()}
9692
disabled={!hasNextPage || isFetchingNextPage}
9793
>

0 commit comments

Comments
 (0)