inflearn logo
강의

Course

Instructor

[Renewal] Creating a NodeBird SNS with React

Applying infinite scrolling

intersectionObserver적용 했는데 왜 계속 inView 값이 False로 찍힐까요

Resolved

1058

giraff59385

9 asked

0

import { useInView } from 'react-intersection-observer';
....

const Home = () => {
    ...
    const { mainPosts, hasMorePosts, loadPostsLoading } = useSelector(
        state => state.post,
    );
    const [ref, inView] = useInView();

    useEffect(() => {
        dispatch({
            type: LOAD_POSTS_REQUEST,
        });
    }, []);

    useEffect(() => {
        console.log(inView);
        if (hasMorePosts && !loadPostsLoading) {
            const lastId = mainPosts[mainPosts.length - 1]?.id;
            dispatch({
                type: LOAD_POSTS_REQUEST,
                lastId,
            });
        }
    }, [inView, hasMorePosts, loadPostsLoading, mainPosts]);

    return (
        <AppLayout>
            .... 
            <div ref={hasMorePosts && !loadPostsLoading ? ref : undefined} />
        </AppLayout>
    );

...

pages/index.js 코드가 다음과 같은데

계속해서 콘솔창에 inView 값이 false라고 뜹니다.

true로 변화하지 않습니다.

그래서 if 문 구절이 실행조차 되지 않는데

뭐가 문제일까요

Next.js express react redux nodejs

Answer 3

0

giraff59385

아뇨 반대입니다 loadPostLoading이 계속 false인 상태에서 어떤 이벤트도 발생하지 않습니다.

네트워크도 아무 변화가 없어요

그냥 맨 처음 컴포넌트가 렌더링? 되는 시점에 useEffect => LOAD_POST_REQUEST 만 한 번 보내고

스크롤 끝까지 내린 시점에선 어떠한 이벤트도 감지되지 않아요 ㅠ

useInView 가 적용이 안 되고 있는 건가요?

 

 

0

giraff59385

0

giraff59385

지금 이런 느낌인데.. loadPostsLoading가 true가 되어야 ref에 값이 들어가고..

inView도 true가 되는 것이 아닌가요?

코드 돌아가는 순서가 파악이 안되어 헤매고 있습니다 ㅠㅋㅋ

0

zerocho

ref가 달린 div에 height와 backgroundcolor를 주시고 실제로 화면에 보이는게 맞는지, 화면에 보일때 inView가 true가 되는지 획인해보세요

0

giraff59385

헉 돼요!!! 그럼 div에 height를 주면 해결이 될까요?

이렇게 되다가

REQUEST 요청도 잘 가고 응답도 잘 오고!! REDUX 보니 요소도 잘 추가가 됩니다.

 

2

zerocho

네 height를 조금 주세요.

0

giraff59385

hasMorePosts는 true가 찍히는데

loadPostsLoading은 false가 찍힙니다

맨 처음에는 useEffect 에 의해 loadPostsLoading이 초반에 false=>true로 바뀌는데

스크롤 이벤트? 게시글을 다 내린 시점에 loadPostsLoading이 변하지 않습니다

 

 

0

zerocho

hasMorePosts가 true고 loadPostsLoading이 false인 상황에 observer가 작동해야 하는데요. loadPostsLoading이 계속 true인 것인가요? true인 이유는 게시글 로딩이 완료가 안 되서 그런 것인데 네트워크탭 열어보셨을 때 빨간 색 에러 요청이 있나요?

0

zerocho

hasMorePosts와 !loadPostsLoading이 모두 true인지 콘솔 찍어보세요

넥스트 버젼 질문

0

78

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

무한 스크롤 중 스크롤 튐 현상

0

175

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

373

1

sudo certbot --nginx 에러

0

1275

2

Minified React error 콘솔에러 (hydrate)

0

470

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

327

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

382

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

288

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

239

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1