반응형
React Native에서 Flatlist를 사용하다 보면 scrollToIndex 함수를 설정할 일이 많다.
그러나 flatlist에 들어간 데이터를 로드하는 데 딜레이가 생길 경우,
scrollToIndex 함수가 제대로 작동하지 않아 자동 스크롤이 자연스럽지 못하거나 아예 중간에 끊기는 경우가 많다.
이때 사용할 수 있는 onScrollToIndexFailed 함수를 설명하고자 한다.
원리는 간단하다.
scrollToIndex 함수가 스크롤에 실패하는 경우 500ms (설정 가능) 정도의 짧은 시간 동안 기다렸다가 다시 스크롤하게 하는 것이다.
const flatlistRef = useRef<FlatList>(null);
...
<FlatList
ref={flatlistRef}
initialScrollIndex={props.index}
onScrollToIndexFailed={
info => {
const wait = new Promise(resolve => setTimeout(resolve, 500));
wait.then(() => {
flatlistRef.current?.scrollToIndex({
index: info.index,
animated:true
});
});
}
}
/>
info에는 기존 스크롤하려 했던 정보가 담겨 있어 잠깐 기다렸다 스크롤 명령을 내리는 것이 가능하다.
setTimeout의 500ms는 기다리는 시간을 조절 가능한 부분이니 잘 활용해보자.
반응형
'개발 및 알고리즘 > 개발' 카테고리의 다른 글
| [React Native] 리액트 네이티브에서 가로모드/세로모드 제한/허용하기 (0) | 2024.07.05 |
|---|---|
| [React Native] 리액트 네이티브에서 NetInfo로 인터넷 연결 상태 확인하기 (RN 0.73) (0) | 2024.07.05 |
| [SQL] Trigger: 이벤트를 감지하여 DB에 자동으로 (0) | 2024.06.28 |
| [SQL] Cascade: 참조 무결성을 지키기 위한 방법 (0) | 2024.06.28 |
| [React Native] 리액트 네이티브에서 Lottie 사용하여 애니메이션 넣기 (RN 0.73) (0) | 2024.04.17 |