useEffect로 router 진입 막는 것 질문입니다.
160
작성한 질문수 55
강의를 보고 개인적으로 프로젝트를 진행중입니다. navigation guard(vue에서는 이렇게 부르던데 리액트는 잘모르겠네요) 로직을 작성하기 위해 아래의 첫번째 부분과 같이 작성했습니다.
url 진입시, me에 대한 정보가 없기때문에 처음 화면으로 돌려줘야하는데 첫번째와 같이 작성하니 me.id를 찾을 수 없다고 error를 내더라구요. 그런데 두번째 코드와 같이 작성하니 문제가 없어졌습니다.
이게 연산자 우선순위 때문에 발생하는 것인가요? mdn 문서를 보니 '!' 연산자가 && 연산자보다 우선하는데, 이 문제인가요?
정확히 답을 알고 싶습니다 ㅠ
useEffect(() => {
console.log('repo me', me);
if (!me && !me.id)) {
Router.replace('/');
}
}, [me]);
useEffect(() => {
console.log('repo me', me);
if (!(me && me.id)) {
Router.replace('/');
}
}, [me]);
답변 2
0
!(me && me.id)는 !me || !me.id와 같습니다. 드모르간의 법칙입니다. &&와 ||의 차이 때문에 다릅니다.
!me && !me.id를 하게 되면 me가 존재하지 않을 시 !me가 true가 되어 !me.id까지 검사합니다. 그런데 me가 존재하지 않으므로 me.id는 에러를 뿜게 됩니다.
넥스트 버젼 질문
0
77
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
372
1
sudo certbot --nginx 에러
0
1274
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
381
1
서버 실행하고 브라우저로 들어갔을때 404에러
0
338
2
css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.
0
287
1
팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.
0
237
2
해시태그 검색에서 throttle에 관해 질문있습니다.
0
201
1





