#34ReactMedium

React 19 Actions (useAction 훅)

React 19 Actions 패턴

비동기 action 함수를 감싸 pending/error/data 상태를 관리하는 커스텀 훅 useAction을 구현하세요.

시그니처

function useAction<TInput, TOutput>(
  action: (input: TInput) => Promise<TOutput>
): {
  run: (input: TInput) => Promise<void>;
  data: TOutput | null;
  error: Error | null;
  pending: boolean;
};

동작

  • run(input) 호출 시 pending이 즉시 true가 됩니다.
  • action이 성공하면 data에 결과가 담기고 pendingfalse가 됩니다.
  • action이 실패하면 error에 에러가 담기고 pendingfalse가 됩니다.
  • run 호출은 이전 data/error를 초기화합니다.

학습 포인트

  • React 19 useActionState/useFormStatus의 핵심 아이디어를 직접 구현
  • 비동기 흐름의 pending/success/error 상태 모델링
  • 컴포넌트 마운트 여부와 무관하게 안전한 상태 업데이트
Sandpack 로드 중…