반응형
https://mingule.tistory.com/65
React에서 setInterval 현명하게 사용하기(feat. useInterval)
들어가기 Babble의 방 목록 페이지에 들어가면 유저가 생성한 방들이 쭉 나열되어 있는 것을 볼 수 있다. (안타깝게도 유저가 없으면 방도 없다ㅜㅜ) 그리고 이 방들은 5초마다 서버에 요청을 보
mingule.tistory.com
위 블로그에서 언급한 원인으로
불완전한 함수인 setInterval로 인해
버그를 맞이할수있다.
간략히 말하자면
setInterval이 지연 시간을 보장해주지 않기 때문
따라서 ,
나는 빠른 주기로
state를 업데이트 하는
stopWatch 훅스를 만들때
아래와 같이 처리해서 목적을
달성하였따.
export function useStopWatch(start: boolean) {
const [time, setTime] = useState(0);
useEffect(() => {
let interval: any = null;
if (start) {
const startedTime = Date.now();
interval = setInterval(() => {
setTime(Date.now() - startedTime);
}, 50);
} else {
if (interval) clearInterval(interval);
}
return () => {
if (interval) clearInterval(interval);
}
}, [start]);
return { time, setTime };
}
반응형
'개발, 코딩 > App - React Native' 카테고리의 다른 글
ios, backgroundTask error (0) | 2022.03.28 |
---|---|
react-native-sound 실행 안됨 [solved] (0) | 2022.03.28 |
code-push 제대로 사용하기 (0) | 2022.02.08 |
[ReactNative] Text in FlatList can't working with selectable (0) | 2022.02.04 |
앱 버전 관리, 어떻게 하는게 좋을까? (0) | 2022.01.26 |