-
Notifications
You must be signed in to change notification settings - Fork 79
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
[김영운] Sprint10 #639
The head ref may contain hidden characters: "Sprint10-\uAE40\uC601\uC6B4"
[김영운] Sprint10 #639
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import Image from 'next/image'; | ||
import IMG_NOTFOUND from '@/public/img-notfound.svg'; | ||
|
||
export default function NotFound() { | ||
return ( | ||
<> | ||
<div> | ||
<div> | ||
<Image | ||
width={500} | ||
height={500} | ||
style={{ width: '500px', height: '500px' }} | ||
src={IMG_NOTFOUND} | ||
alt={'찾을 수 없는 페이지 이미지'} | ||
/> | ||
<div> | ||
<p>{'찾을 수 없는 페이지입니다.'}</p> | ||
<p>{'요청하신 페이지가 사라졌거나,'}</p> | ||
<p>{'잘못된 경로를 이용하셨어요. :)'}</p> | ||
</div> | ||
</div> | ||
</div> | ||
</> | ||
); | ||
} | ||
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,34 @@ | ||||||||||||||||||||||
import { useState } from 'react'; | ||||||||||||||||||||||
export interface IBoardValues { | ||||||||||||||||||||||
title: string; | ||||||||||||||||||||||
content: string; | ||||||||||||||||||||||
imgFile: string | null; | ||||||||||||||||||||||
} | ||||||||||||||||||||||
|
||||||||||||||||||||||
export default function AddBoard() { | ||||||||||||||||||||||
const [values, setValues] = useState<IBoardValues>({ | ||||||||||||||||||||||
title: '', | ||||||||||||||||||||||
content: '', | ||||||||||||||||||||||
imgFile: null, | ||||||||||||||||||||||
}); | ||||||||||||||||||||||
|
||||||||||||||||||||||
function onChangeValues(key: keyof IBoardValues, value: string) { | ||||||||||||||||||||||
setValues(prevValues => ({ ...prevValues, [key]: value })); | ||||||||||||||||||||||
} | ||||||||||||||||||||||
Comment on lines
+15
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 리액트 이벤트 타입은 다음과 같이 정의할 수 있습니다 !
Suggested change
이미 리액트에서 제공되는 타입은 새로 정의할 필요 없겠죠? 😊 |
||||||||||||||||||||||
|
||||||||||||||||||||||
return ( | ||||||||||||||||||||||
<div> | ||||||||||||||||||||||
<form> | ||||||||||||||||||||||
<div> | ||||||||||||||||||||||
<h1>게시글 쓰기</h1> | ||||||||||||||||||||||
<button type="submit">등록</button> | ||||||||||||||||||||||
</div> | ||||||||||||||||||||||
<label>*제목</label> | ||||||||||||||||||||||
<input type="text" placeholder="제목을 입력해주세요" /> | ||||||||||||||||||||||
Comment on lines
+26
to
+27
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 다음과 같이 라벨과 인풋을 연결할 수 있습니다 !
Suggested change
혹은 다음과 같이:
Suggested change
|
||||||||||||||||||||||
<label>*내용</label> | ||||||||||||||||||||||
<textarea placeholder="내용을 입력해주세요"></textarea> | ||||||||||||||||||||||
<label>상품 이미지</label> | ||||||||||||||||||||||
</form> | ||||||||||||||||||||||
</div> | ||||||||||||||||||||||
); | ||||||||||||||||||||||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
// 일단 파일만 만들어 둠.. 9미션 및 앞으로 들어갈 api 정리 모듈로 쓸 파일 입니다. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 굳굳 ! 좋은 생각입니다.프로젝트에서는 API 호출 로직을 별도의 파일로 분리하여 관리하는 것이 일반적이예요. 이렇게 하면 컴포넌트, 페이지, 훅 등 어디든 사용될 수 있겠죠? 😊 // src/services/apis/user.api.ts (예시입니다 !)
export const getUserInfo = async () => {
try {
const { data } = await axios.get('/sample/user');
return data;
} catch(error) {
throw error;
}
}; |
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.
오호 !
404
페이지를 만들었군요 ! 굳굳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.
예전에 에러 컴포넌트 관련하여 다음과 같이 만들었던 기억이 나네요: