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

[염정훈] Sprint6 #176

Conversation

youmdang
Copy link
Collaborator

요구사항

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

기본

상품등록

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

심화

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

주요 변경사항

  • 상품등록 페이지 추가
  • 라우터를 사용하여 url에 맞게 페이지 노출
  • link를 사용하여 클릭시 해당 페이지로 이동

스크린샷

localhost_3000_AddItem

상품 등록하기 이미지
상품 등록하기 성공

멘토에게

  • 태그를 작성하는 input영역 하단에 있는 관련태그 텍스트 추가하는 부분은 구현하는데 막혀서 하드코딩으로 작성했습니다.
  • 라우터를 처음 사용해봤는데 올바르게 사용한건지 확인 부탁드립니다.

@youmdang youmdang changed the base branch from main to React-염정훈 June 28, 2024 09:07
@youmdang youmdang changed the title React 염정훈 sprint6 [염정훈] Sprint6 Jun 28, 2024
@youmdang youmdang requested a review from jyh0521 June 28, 2024 10:02
@youmdang youmdang added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels Jun 28, 2024
Copy link
Collaborator

@jyh0521 jyh0521 left a comment

Choose a reason for hiding this comment

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

과제하느라 고생하셨습니다! 리액트스럽게 잘 만들어주셨네요 👍

`https://panda-market-api.vercel.app/products?page=1&${query}`
);
export async function getProducts({ page, pageSize, order }) {
const apiUrl = process.env.REACT_APP_API_URL;
Copy link
Collaborator

Choose a reason for hiding this comment

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

닷엔브 활용해주신거 좋네요. 추가로 보통 baseURL이라는 이름도 많이 사용합니다!

Comment on lines +4 to +9
const [formData, setFormDate] = useState({
name: "",
info: "",
price: "",
tag: "",
});
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 +39 to +53
const validAddItem = () => {
// 유효성 검사
if (
formData.name !== "" &&
formData.info !== "" &&
formData.price !== "" &&
formData.tag !== ""
) {
setAddItemBtn("on");
setBtnDisabled(false);
} else {
setAddItemBtn("");
setBtnDisabled(true);
}
};
Copy link
Collaborator

Choose a reason for hiding this comment

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

현재 방식과 큰 차이는 없지만, 조금 더 역할을 구분해주시는 방법도 추천드립니다. 예를 들어서 유효성 검사하는 함수 내부에서는

formData.name !== "" &&
formData.info !== "" &&
formData.price !== "" &&
formData.tag !== ""

이 로직에 대한 결과만 반환하고 useEffect 내부에서 이 함수의 결과를 보고 setState가 일어나는 방식으로요!

Comment on lines +55 to +58
useEffect(() => {
// input 데이터 변경 될때마다 유효성 검사 실행
validAddItem();
}, [formData]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

상태에 따라서 매번 유효성 검사해주시는 로직을 useEffect를 활용해서 잘 작성해주셨네요!

Comment on lines +19 to +20
const recent = "recent";
const favorite = "favorite";
Copy link
Collaborator

Choose a reason for hiding this comment

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

보통 상수로 관리할때 상수라는 점을 표현하기 위해 변수명으로 대문자를 많이 사용합니다. RECENT 이런식으로요!

Comment on lines +19 to +26
<Routes>
<Route path="/" element={<Home />} />
<Route path="/Login" element={<Login />} />
<Route path="/Signup" element={<Signup />} />
<Route path="/Items" element={<Items />} />
<Route path="/AddItem" element={<AddItem />} />
<Route path="*" element={<NotFoundPage />} />
</Routes>
Copy link
Collaborator

Choose a reason for hiding this comment

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

라우터 세팅 잘해주셨네요!

@jyh0521 jyh0521 merged commit 8e866cd into codeit-bootcamp-frontend:React-염정훈 Jun 30, 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.

3 participants