-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
useEffect()의 window에 관한 콘솔은 계속 찍히는 이유가 무었인가요?
23.07.03 19:05 작성 조회수 222
0
useEffect(() => {
function onScroll() {
console.log(
window.scrollY,
document.documentElement.clientHeight,
document.documentElement.scrollHeight
);
if (
window.scrollY + document.documentElement.clientHeight ===
document.documentElement.scrollHeight
)
if (hasMorePost) {
const dummypost = generateDummpyPost(10);
dispatch(loadPost({ dummypost }));
}
}
window.addEventListener("scroll", onScroll);
return () => {
window.removeEventListener("scroll", onScroll);
};
}, [hasMorePost]);
useEffect를 이런 식으로 작성하면 hasMorePost의 값이 변경되기 전까지 useEffect는 처음 단한번만 실행된후 그후에는실행되지 않아야 하는데 왜 계속 console.log가 실행되는건가요?
답변을 작성해보세요.
0
조현영
지식공유자2023.07.03
useEffect는 한번만 실행된 게 맞고요(hasMorePost가 바뀌기 전까지),
window에 등록된 이벤트리스너가 계속 실행되는 겁니다.
답변 1