Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- XEIcon
- legacy-peer
- fontawesome
- npm start
- 아이콘사용법
- 플러그인
- minwidth
- slickslider
- window 정책변경
- vscode git clone
- npm install 문제
- 그누보드반응형
- maxwidth
- 정적객체
- Git clone
- MediaQuery
- npm install
- react npm install
- 웹아이콘
- 글자들여쓰기
- package.json
- owlcarousel
- node설치
- googleicon
- 단어단위로떨어지기
- 이미지반응형
- git lab clone
- 동적객체
- node 오류
- 의존성문제
Archives
- Today
- Total
어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ
[React] useFormik() 훅 본문
728x90
const customRestForm = useFormik({
initialValues: {
id: 0,
companyId: company.get.id,
type: 'REST_CUSTOM',
name: null,
memo: null,
},
// ... (validation, onSubmit 같은 나머지 설정도 있을 수 있어)
});
📌 useFormik() 훅 이란?
=> 폼 데이터를 관리하는 커스텀 객체
=> React에서 폼을 쉽게 만들고 관리할 수 있게 도와주는 오픈소스 라이브러리
사용방법
// npm
npm install formik
// yarn
yarn add formik
import { useFormik } from 'formik';
✔ initialValues
=> 초기 상태, 즉 처음 렌더링될 때 폼 안에 들어갈 기본 값
initialValues: {
id: 0,
companyId: company.get.id,
type: 'REST_CUSTOM',
name: null,
memo: null,
}
return 값에서 사용시 아래처럼 주면 폼의 값 수정 가능
ex) 휴가 사유 수정
customRestForm.resetForm(); // customRestFrom 초기화
customRestForm.setValues({ // customRestFrom 값을 vacation 값으로 변경
...vacation,
});
// 사용 예시
return (
<Button
type='button'
onClick={() => {
customRestForm.resetForm();
customRestForm.setValues({
...vacation,
});
}}>
{수정 버튼}
</Button>
)
✔ validate
=> 에러 띄우기
=> 폼 입력값을 검사해서, 문제가 있으면 에러 메시지를 반환하는 함수
validate: (values) => {
const errors = {};
console.log('values', values);
if(values.name === null){
errors.name = '휴가 설정 이름이 필요합니다.';
}
}
=> 오류가 있는 필드는 자동으로 errors 객체에 담김
✔ onSubmit
=> 폼이 제출됐을 때 실행되는 함수
=> 보통 서버로 데이터를 전송하는 로직을 작성
onSubmit: async (values) => {
console.log('onsubmit values>>>>', values);
try {
await axios.post('/api/vacation', values);
alert('제출 완료!');
} catch (error) {
console.error('제출 실패', error);
}
}
ex) 서버에 저장
728x90
'개발 > 🟦 React' 카테고리의 다른 글
| [React] 기본 로딩(import), 지연 로딩(lazy) (0) | 2025.04.11 |
|---|---|
| [React] useRef(), ref, forwardRef() (0) | 2025.04.10 |
| 🟦 [React] && 연산자 / React에서 if 문 대신 && 연산자 사용하기 (0) | 2025.04.01 |
| [Node.js] windows에서 처음 사용할 때 발생하는 문제/ 실행 정책 변경 명령어 입력 (1) | 2025.03.30 |
| 🟦 [React] 어떤 빌드 도구를 사용하는지 알아보는 법 (ex. Vite, Next.js, CRA) (0) | 2025.03.29 |
Comments