Skip to content

Conversation

@sinyroom
Copy link
Collaborator

@sinyroom sinyroom commented Jun 25, 2025

요구사항

기본

  • 상품 등록 페이지 주소는 “/additem” 입니다.
  • 페이지 주소가 “/additem” 일때 상단네비게이션바의 '중고마켓' 버튼의 색상은 “3692FF”입니다.
  • 상품 이미지는 최대 한개 업로드가 가능합니다.
  • 각 input의 placeholder 값을 정확히 입력해주세요.
  • 이미지를 제외하고 input 에 모든 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.
  • API를 통한 상품 등록은 추후 미션에서 적용합니다.

심화

  • 이미지 안의 X 버튼을 누르면 이미지가 삭제됩니다.
  • 추가된 태그 안의 X 버튼을 누르면 해당 태그는 삭제됩니다.

주요 변경사항

  • 미션6 요구사항 적용했습니다.

스크린샷

Screenshot 2025-06-25 at 23 06 59
Screenshot 2025-06-25 at 23 32 25
Screenshot 2025-06-25 at 23 54 40
Screenshot 2025-06-25 at 23 55 20
Screenshot 2025-06-25 at 23 57 53

멘토에게

  • 미리보기 이미지(A)를 삭제한 다음 다시 이미지(A)를 업로드 하려고 하면 미리보기(A)가 화면에 보이지 않는데 왜 그런지 이유를 모르겠습니다🥲 이미지(A)를 삭제하고 이미지(B)를 선택하면 미리보기(B)로 잘 보이는데 어떤 부분에서 막혀있는건지 알 수 있을까요 ?
  • 커스텀 훅을 생성하는게 아직 미숙한데, 어떤 부분을 커스텀 훅으로 빼면 좋을지 잘 판단이 서지 않는 것 같아서 이 부분도 같이 여쭤봅니다 !
  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@sinyroom sinyroom changed the base branch from main to React-문지영 June 25, 2025 15:00
@sinyroom sinyroom requested a review from addiescode-sj June 25, 2025 15:00
@sinyroom sinyroom added 순한맛🐑 마음이 많이 여립니다.. labels Jun 26, 2025
Copy link
Collaborator

@addiescode-sj addiescode-sj left a comment

Choose a reason for hiding this comment

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

수고하셨습니다!

주요 리뷰 포인트

  • 스타일드 컴포넌트 구별 방식 관련 피드백
  • 이미지 업로드 관련 문제 해결

const preview = URL.createObjectURL(file);
setPreviewUrl(preview);

if (previewUrl) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

본문에서 질문주신 문제에 대해 답변드리자면,
이미지를 삭제하고 다시 같은 이미지를 업로드할때 함수 내부의 previewUrl은 이전값(같은 값)을 참조하고 있는 상황이기때문에, 해당 조건이 true가 되어 그렇습니다. 따라서 이 상태를 직접 참조하는대신, 파일의 값이 있는지만(비어있는지 아닌지만) 확인하는식으로 조건을 수정하면 될것같네요!

Comment on lines +37 to +42
<StNavLink
to="/items"
$isActive={isMarketActive}
>
중고마켓
</StNavLink>
Copy link
Collaborator

Choose a reason for hiding this comment

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

저번 PR에서 조언드렸던 코멘트인것같은데, 스타일드 컴포넌트를 구분짓기위한 의도라면 완전한 의미를 가진 StyledNavLink로 네이밍하시는게 좋을것같습니다.

혹은, NavLink로 네이밍하고 외부 파일로 분리해 불러올때
import * as S from '...' 이렇게 불러와서 구분하는 방식도 괜찮습니다.

const [price, handlePriceChange] = useFormatNumber('');
const [tags, setTags] = useState([]);

const isDisabled = name.trim() && description.trim() && price.trim() && tags.length > 0;
Copy link
Collaborator

Choose a reason for hiding this comment

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

혹시 조건이 반대로 되어있는것 아닌가요?


<FormSection>
<ImageUpload />

Copy link
Collaborator

Choose a reason for hiding this comment

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

공백 지워주세요!

Comment on lines +11 to +14
const [name, setName] = useState('');
const [description, setDescription] = useState('');
const [price, handlePriceChange] = useFormatNumber('');
const [tags, setTags] = useState([]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

굳굳! 각 필드를 개별적으로 업데이트할수있게 나누셨군요 👍

@addiescode-sj
Copy link
Collaborator

질문에 대한 답변

멘토에게

  • 미리보기 이미지(A)를 삭제한 다음 다시 이미지(A)를 업로드 하려고 하면 미리보기(A)가 화면에 보이지 않는데 왜 그런지 이유를 모르겠습니다🥲 이미지(A)를 삭제하고 이미지(B)를 선택하면 미리보기(B)로 잘 보이는데 어떤 부분에서 막혀있는건지 알 수 있을까요 ?

본문에서 자세히 답변드렸습니다!

  • 커스텀 훅을 생성하는게 아직 미숙한데, 어떤 부분을 커스텀 훅으로 빼면 좋을지 잘 판단이 서지 않는 것 같아서 이 부분도 같이 여쭤봅니다 !

커스텀 훅은 보통 이럴 경우에 쓰입니다:

  • 리액트에서 여러 컴포넌트에서 반복적으로 사용되는 상태 로직이나 효과 로직을 하나의 함수로 추출해 재사용하고 싶을 때
  • 코드의 중복을 줄이고, 유지보수성을 높이고 싶을 때
  • 상태 관리, 부수 효과 등 리액트 훅을 활용한 로직을 재사용하고 싶을 때
  • 비즈니스 로직과 UI 로직을 분리하고 싶을 때

정리하자면 커스텀 훅은 '재사용'과 '로직 분리'가 포인트로,
만약 어떤 로직이 컴포넌트에서 따로 분리하기엔 하는 일이 매우 작고, 재사용되기에도 애매한 편이라면
오히려 커스텀 훅으로 만들면 호출 순서에 의존하게되는 제약이 생기므로 주의해서 사용하셔야하시는게 좋습니다!
아래 아티클 잘 읽어보시고, 기준을 잘 잡아보시면 좋을것같네요 :)

참고

  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@addiescode-sj addiescode-sj merged commit d4b9ea5 into codeit-bootcamp-frontend:React-문지영 Jun 29, 2025
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