• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 센세 로그인된 user가 아니라면 페이지 접속못하게하기

센세 로그인된 user가 아니라면 페이지 접속못하게하기

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #71028

    정중식
    참가자
    구현 질문있습니다.
    
    
    사진처럼 App.js에서 로컬호스트에 넣은 user를 하위 컴포넌트에 전달해주는식으로 user가 아니라면 페이지를 못들어가는식으로 구현했는데요,
    
    근데 잘되는줄알았는데 아니더라구요..
    
    로그인할때 로컬스토리지에 user정보를 집어넣고 '/'으로 돌아가게끔해주고있는데, 로그인하고 '/' 로 돌아가면 user가 null로 나옵니다.
    
    정확하게는 App.js에서 console.log(user); 해보면 null로 나옵니다.
    
    왜 그런가 했더니 App.js에서 재랜더링을 안해주고있더라구요
    
    당연히 값 변화가없으니 App.js에서는 재랜더링을 안해준거겠지만..  그래서 이런생각을했어요
    
    1. 어차피 로그인할때 로컬스토리지에도 user정보를 넣고, 전역 state에도 user정보를 넣어줬으니깐..
    
    2. App.js에서 useSelector로 user정보를 불러와서 하위 컴포넌트에 뿌려주자!
    
    3. console.log(user);를해주면 로그인후 '/'로 가면 콘솔에는 처음엔 null을, 그후엔 user정보를 출력해주더라구요.
    
    
    
    
    
    이렇게해도.. 괜찮을까요?
    
    + 근데 문제는 이렇게하면 로그인유저가 글쓰기페이지에서 새로고침을하면 '/' 로 가버리는 귀찮은 현상이벌어집니다.ㅠ.ㅠ
    ( 왜냐면 그때 선생님이 말씀해주셨던것처럼 state는 바로바뀌는게 아니라 밀렸다가 다음으로 코드부터 동작하고 바뀌는..일명 밀리는현상때문에 처음은 null되기때문에)
      그럼 역시나 방법은 아래 제가 댓글단것처럼 해야할까요?
    
    
    #71030

    정중식
    참가자
    user가 필요한 컴포넌트마다  일일히 
    const user = JSON.parse(localStorage.getItem('userInfo')); 
    를 작성해주고 거기서 user를 사용하는 방법이 가장 단순하기는한데.. 반복적인 코드가 사용되는거니깐 App.js에서 한번에 처리해줄수있는 방법이없을까요?
    #71067

    codingapple
    키 마스터
    넴 state에 저장해서 쓰는게 제일 편합니다 
    미로그인시 /로 돌아가라고하는거보다 그냥 html 내용만 안보여줘도 됩니다
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠