Skip to content
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

Merged
merged 13 commits into from
Jul 21, 2024

Conversation

yunn23
Copy link

@yunn23 yunn23 commented Jul 17, 2024

4주차 Step1~2 과제 진행하였습니다.

코드 리뷰 해주셔서 감사합니다. 항상 얻어가는 것이 많습니다!

@taehwanno taehwanno self-requested a review July 17, 2024 15:03
Copy link

@taehwanno taehwanno left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아직 구현 중이신거 같아서, 리뷰 가능한 상태가 될 때 우측 상단에 review re-request 누르셔서 요청 부탁드려요.

src/components/features/Layout/ProductDetail.tsx Outdated Show resolved Hide resolved
@yunn23
Copy link
Author

yunn23 commented Jul 18, 2024

step1,2 구현 완료

@yunn23 yunn23 requested a review from taehwanno July 18, 2024 06:27
@yunn23 yunn23 changed the title 전남대 FE_정서윤 4주차 과제 전남대 FE_정서윤 4주차 과제 STEP1 ~ STEP2 Jul 18, 2024
@yunn23 yunn23 changed the title 전남대 FE_정서윤 4주차 과제 STEP1 ~ STEP2 전남대 FE_정서윤 4주차 과제 STEP1, 2 Jul 19, 2024
Copy link

@taehwanno taehwanno left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다. 몇 가지 피드백 드려요!

src/pages/Order/index.tsx Outdated Show resolved Hide resolved
navigate(RouterPath.login);
} else {
// 로그인 되어 있는 경우 상품 주문페이지로 이동
navigate(RouterPath.order, { state: { productDetail: detail, quantity, price } });
Copy link

@taehwanno taehwanno Jul 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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을 통해 특정 페이지부터 다시 시작할 수 있다는 장점도 있구요. 제품에서 이러한 사용 사례를 허용할 것인지에 대한 선택의 문제이긴 합니다.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 /order URL 직접 접근 관련해서도 한 번 생각해보겠습니다 감사합니다.

src/pages/Order/index.tsx Show resolved Hide resolved
@yunn23
Copy link
Author

yunn23 commented Jul 20, 2024

step1, 2 피드백 반영하여 코드 수정하였습니다.

@yunn23 yunn23 requested a review from taehwanno July 20, 2024 12:11
Copy link

@taehwanno taehwanno left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다.

@taehwanno taehwanno merged commit ab50015 into kakao-tech-campus-2nd-step2:yunn23 Jul 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants