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

[나윤주] sprint7 #207

Conversation

naynara87
Copy link
Collaborator

@naynara87 naynara87 commented Jul 4, 2024

스프린트 7미션

요구사항

  • Github에 PR(Pull Request)을 만들어서 미션을 제출합니다.
  • 피그마 디자인에 맞게 페이지를 만들어 주세요.
  • React를 사용합니다

기본

상품 상세

  • response 로 받은 아래의 데이터로 화면을 구현합니다.
  • 상품 상세 페이지 주소는 “/items/{productId}” 입니다.
    => favoriteCount : 하트 개수
    => images : 상품 이미지
    => tags : 상품태그
    => name : 상품 이름
    => description : 상품 설명
  • 목록으로 돌아가기 버튼을 클릭하면 중고마켓 페이지 주소인 “/items” 으로 이동합니다

상품 문의 댓글

  • response 로 받은 아래의 데이터로 화면을 구현합니다
  • 문의하기에 내용을 입력하면 등록 버튼의 색상은 “3692FF”로 변합니다.
    => image : 작성자 이미지
    => nickname : 작성자 닉네임
    => content : 작성자가 남긴 문구
    => description : 상품 설명
    => updatedAt : 문의글 마지막 업데이트 시간

스크린샷

스크린샷 2024-07-04 오후 9 57 17

멘토에게

  • api 폴더 관리 추후에 post delete 추가되면 정리 어떻게 할지요..

@naynara87 naynara87 requested a review from Taero-Kim July 4, 2024 22:59
@naynara87 naynara87 added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Jul 4, 2024
src/App.js Show resolved Hide resolved
src/components/form/Input.js Show resolved Hide resolved
src/components/form/Input.js Show resolved Hide resolved
tagToRemove => {
const updatedList = tagList.filter(tag => tag !== tagToRemove);
tagIdToRemove => {
const updatedList = tagList.filter(tag => tag.id !== tagIdToRemove);
setTagList(updatedList);
onTagListChange(updatedList);
Copy link
Collaborator

Choose a reason for hiding this comment

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

p3;
상위 form에서 values에 tagList 상태를 관리하고 있으니,
TagInput이라는 컴포넌트에서도 tagList 상태를 추가로 선언하기 보다는
상위 form에서 전달받은 values.tagList 를 사용하는 건 어떨까요?

setTagList(updatedList)와 onTagListChange(updatedList)
이렇게 똑같은 updatedList를 두 번 업데이트하는건 조금 비효율적인 것 같아요!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

오류가 나서... 줄이는게 안되네요.

tagToRemove => {
const updatedList = tagList.filter(tag => tag !== tagToRemove);
tagIdToRemove => {
const updatedList = tagList.filter(tag => tag.id !== tagIdToRemove);
Copy link
Collaborator

Choose a reason for hiding this comment

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

p5;
요런 경우에는 기존 상태를 참조하기보다는 useState의 set함수에서 사용할 수 있는
이전 상태의 스냅샷을 사용하여 상태를 업데이트 하는 것도 괜찮을 것 같아요!

setTagList(prevTagList => {
  const updatedList = prevTagList.filter(tag => tag.id !== tagIdToRemove);
  return updatedList
})

src/hooks/useInquery.js Show resolved Hide resolved
src/hooks/useProductId.js Show resolved Hide resolved
src/pages/Item/components/ProductInfo.js Show resolved Hide resolved
src/services/api.js Show resolved Hide resolved
@Taero-Kim
Copy link
Collaborator

윤주님 고생하셨어요!
확실히 점점 코드가 전반적으로 가독성이 좋아지고 있어요!

api 폴더는 현재도 괜찮은데요! 추후 products가 아닌 리소스에 대한 요청 등을 고려해 아래와 같은 느낌으로 디렉토리를 구성해도 괜찮을 것 같아요!

/services
  -/api
    -/products
      /index.js
    -/users   // 예시
      /index.js 

+) 일부 파일에서 confilct이 발생하고 있는데, 이 부분 해결해서 올려주시면 머지해드릴게요!

@naynara87
Copy link
Collaborator Author

윤주님 고생하셨어요! 확실히 점점 코드가 전반적으로 가독성이 좋아지고 있어요!

api 폴더는 현재도 괜찮은데요! 추후 products가 아닌 리소스에 대한 요청 등을 고려해 아래와 같은 느낌으로 디렉토리를 구성해도 괜찮을 것 같아요!

/services
  -/api
    -/products
      /index.js
    -/users   // 예시
      /index.js 

+) 일부 파일에서 confilct이 발생하고 있는데, 이 부분 해결해서 올려주시면 머지해드릴게요!

수정 권한이 없는지... 뭔가 잘 안되네요..ㅠㅠ 이번 내용 적용해서 다시 한번 올려볼께요

@naynara87 naynara87 closed this Jul 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants