오늘은 토요일.
차가 고장나서 차 수리를 다녀왔다.
클럭 스프링이 고장이 났네.
- 클럭 스프링은 핸들 안에 들어있는 전기 배선으로 에어백 경고등이 들어와서 수리함
왜 클럭 스프링이냐면, 옛날 시계에 들어있던 태엽과 같은 모습이라 시계 태엽이라는 명칭이였다고 한다.
쓸데없는 소리를 좀 해야 글 분량이 나오기도 해서 잡소리를 했다.
----------------------------------
이제 본론으로 돌아와서 폼 제출시 상태를 가져올수 있다.
어떻게 가져오는가?
useFormStatus를 통해서 가져올수 있다.
해당 라이브러리는 react-dom에 들어있다.
MealsFormSubmit 버튼을 아래와 같이 만들어주고,
'use client'
import { useFormStatus } from "react-dom";
export default function MealsFormSubmit() {
const { pending } = useFormStatus();
if(pending) {
console.log('pending: ', pending);
}
return <button disabled={pending}>
{pending ? 'Submitting...' : 'Share Meal'}
</button>
}
화면단 폼 내부에 아래와 같이 사용한다.
... 상위 코드 생략 ...
<p className={classes.actions}>
<MealsFormSubmit />
</p>
</form>
... 하위 코드 생략 ...
뭐 하나씩 정리하다보면 나중엔 외워서 쓸수 있을것 같다.
두번째로 useFormState를 공부하겠다.
여기서 사용하는 formAction은 실제 액션부이다.
formAction은 useFormState()로 전달받는 실제 폼 상태값이다.
연결고리를 생각하는게 쉽지는 않다. 잘 생각하고 곱씹고 이해하려 해보자.
해당 액션은 아래와 같이 호출되어진다.
기존에 사용되던 폼데이터가 두번째 인수로 받아지는것에 주의한다.
폼데이터 검증 과정을 거치고, 오류 발생시 오류로 던져줄수가 있다.
여기서 중요한부분은
이 부분이다.
초기에 설정된 값과 동일한 양식으로 맞춰주어야 화면단에서 처리가 가능하다.
화면단에서는 return된 값을 통해서 화면에 노출해 줄수 있기 때문이다.
form 전송부에 대한 학습이였다.
지금은 NEXTJS, CSS를 학습중인데, 어느정도 완성되면 공개 예정이다.
'진심 코딩' 카테고리의 다른 글
| [NextJS] 20260405 Catch-all 라우팅 구성 (0) | 2026.04.05 |
|---|---|
| [NextJS] 20260405 병렬라우팅, 캐시, metadata (0) | 2026.04.05 |
| [NEXTj] 2일차 일지 - mysql 연동 설정 (0) | 2026.04.02 |
| NextJS 개발기 1일차 (0) | 2026.04.01 |
| Node.js .gitignore 설정 (0) | 2026.04.01 |