티스토리 뷰
개발 세상/React Native
[ReactNative/Typescript] Flatlist의 onEndReached 기능을 ScrollView에서 구현해보자!
썬이_ 2023. 10. 30. 18:56728x90
반응형
페이징 기능이 들어가는 View의 경우에는, FlatList의 onEndReached 속성을 사용해서 스크롤의 하단에 닿았을 때
pageSize를 늘려주거나 page를 변경해주어 api를 새로 호출해주게 되는 페이징 기능을 주로 사용하게 되는데,
필요에 따라 flatList가 아닌 ScrollView에서 이 기능을 사용해주어야 할 때가 있다.
다만 ScrollView에서는 onEndReached 속성이 없기에 따로 구현해주어야 하는 단점이 있는데,
이럴 때 ScrollView의 onScrollEndDrag 속성을 잘 활용하면 문제없이 구현이 가능하다!
onScrollEndDrag 는 사용자가 ScrollView 안에서 스크롤 동작을 끝냈을 때 발생되게 되는 이벤트인데,
이 동작이 끝나는 타이밍을 스크롤의 하단부에 닿았을 때를 계산하여 동작하게끔 하면 onEndReached와 같은 효과를 기대할 수 있게 된다.
const isCloseToBottom = ({
layoutMeasurement,
contentOffset,
contentSize,
}: NativeScrollEvent) => {
const paddingToBottom = 34;
return (
layoutMeasurement.height + contentOffset.y >=
contentSize.height - paddingToBottom
);
};
<ScrollView
onScrollEndDrag={({nativeEvent}) => {
if (isCloseToBottom(nativeEvent)) {
setPageSize(pageSize + 10);
}
}}>
{children}
</ScrollView>
728x90
반응형
'개발 세상 > React Native' 카테고리의 다른 글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- build
- useEffect
- Firebase
- Ai
- typeScript
- gradle
- ChatGPT
- React Hooks
- ios
- 영종도데이트
- 앱개발
- 코린이
- Android
- JavaScript
- TS
- rn
- React Native
- vsC
- IMAGE
- ReactNative
- app
- useState
- REACT
- Mac
- It
- 스파르타코딩클럽
- FlatList
- Xcode
- vscode
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함