인프런 커뮤니티 질문&답변

Dev님의 프로필 이미지
Dev

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

RightMenu.js에서 useSelect 질문있습니다

해결된 질문

작성

·

166

0

 if (user.userData && !user.userData.isAuth) {
    return (
      <Menu mode={props.mode}>
        <Menu.Item key="mail">
          <a href="/login">Signin</a>
        </Menu.Item>
        <Menu.Item key="app">
          <a href="/register">Signup</a>
        </Menu.Item>
      </Menu>
    )

이와 같은 코드에서 landing page로 첫 로딩이 됬을 경우, user_reducer.js 파일에서 state의 초기값을 빈객체로 하였기 때문에 처음에는 빈 객체가 출력되고 dispatch한 action값으로  state값이 변경되는 구조이잖아요

위 사진과 같이 빈 객체일 시점에,

if(user.userData && user.userData.isAuth)를 쓰면

user.userData가 없는 property에 접근하기에 에러가 발생한다고 생각했는데, undefined가 되네요.

그렇다면 똑같이 빈 객체일 시점에서,

user.userData.isAuth를 하면 에러가 발생하네요.

이 둘은 자바스크립트의 객체의 문법적인 특징인가요??

혹시 참고할만한 자료같은게 있으면 부탁드리겠습니다

 

항상 강의 잘 보고 있습니다.

늘 다음 강의가 기다려지는 강의 감사합니다!

답변 2

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

비동기 요청으로 가져오는데 시간이 걸리기에 그 가져오기 전에는 undefined 가 떠서 
무조건 user.userData가 있을 때만 그리고 user.userData가 있다면  이제는 user.userData.isAuth가 있을 때만 

로직을 처리해주게 됩니다 ~ !  
수고하세요  ~ ! 

0

Dev님의 프로필 이미지
Dev
질문자

감사합니다!!

Dev님의 프로필 이미지
Dev

작성한 질문수

질문하기