-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
전남대 FE_정서윤 4주차 과제 STEP1, 2 #20
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아직 구현 중이신거 같아서, 리뷰 가능한 상태가 될 때 우측 상단에 review re-request 누르셔서 요청 부탁드려요.
step1,2 구현 완료 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다. 몇 가지 피드백 드려요!
navigate(RouterPath.login); | ||
} else { | ||
// 로그인 되어 있는 경우 상품 주문페이지로 이동 | ||
navigate(RouterPath.order, { state: { productDetail: detail, quantity, price } }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
navigate(RouterPath.order, { state: { productDetail: detail, quantity, price } }); | |
const state: OrderLocationState = { productDetail: detail, quantity, price }; | |
navigate(RouterPath.order, { state }); |
location.state를 사용할 때는 state를 전달하는 곳과 소비하는 곳이 달라서 state의 변화가 있을 때 타입 안전하게 처리하기 위해서는 소비하는 곳에서 state의 타입을 선언하고 이를 전달하는 곳에서 선언한 타입에 의존하는게 좋습니다. 그럼 key가 다르게 전달되거나 타입이 다르다면 에러가 발생할테니까요.
추가로 생각해볼만한 지점으로는 /order
URL에 직접 접근했을 때 어떻게 대응할지 문제가 있습니다. 이때는 location.state가 없을테니까요. location.state를 통해 전달하는 데이터 구조가 복잡하지 않다면 URL을 하나의 리소스로 바라보고 URL query string으로 전달하는 방법도 있습니다. 이렇게 하면 페이지에서 의존하고 있는 데이터가 URL에 존재하니까 유저가 URL을 통해 특정 페이지부터 다시 시작할 수 있다는 장점도 있구요. 제품에서 이러한 사용 사례를 허용할 것인지에 대한 선택의 문제이긴 합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
오 /order URL 직접 접근 관련해서도 한 번 생각해보겠습니다 감사합니다.
step1, 2 피드백 반영하여 코드 수정하였습니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다.
4주차 Step1~2 과제 진행하였습니다.
코드 리뷰 해주셔서 감사합니다. 항상 얻어가는 것이 많습니다!