ilokesto

제출과 초기화

submit(onValid, onInvalid)은 폼을 검증하고 submitCount를 증가시킨 뒤 알맞은 콜백을 호출합니다. 검증이나 onValid가 진행 중이면 isSubmitting이 true입니다. 완료되면 isSubmitted가 true가 되고, isSubmitSuccessful은 유효한 값 콜백이 성공적으로 끝났는지를 나타냅니다. 반환 promise는 onValid의 반환값으로 resolve되고, 검증 실패 시 undefined로 resolve되며, onValid가 throw하거나 reject하면 reject됩니다.

await form.submit(
  async (values) => {
    await api.save(values);
    form.reset(values);
  },
  (fields) => {
    console.warn('invalid fields', fields);
  },
);

reset()은 현재 defaultValues로 되돌립니다. reset(nextValues)는 그 기준값을 교체하고 새 값 주변의 필드 메타데이터를 정리합니다. 선택적인 ResetOptions의 keepDirtyValues, keepErrors, keepTouched, keepSubmitState로 dirty 값, 오류, touched 플래그, 제출 상태를 보존할 수 있습니다. 서버 흐름에서는 submit, setErrors, clearErrors를 함께 사용하세요. 클라이언트 검증을 통과한 값을 제출하고, 서버 오류를 필드에 매핑한 뒤, 사용자가 수정하거나 다시 시도할 때 그 오류를 지웁니다.

실무 사용 팁

추상화를 만들 때는 이 레퍼런스를 가까이 두세요. 레퍼런스는 패키지가 무엇을 노출하는지 설명하고, 가이드는 그 조각들을 조합하는 한 가지 방식을 보여줍니다. 어떤 도우미가 FieldPathInput, 검증 시점, 배열 재배치를 감춘다면 그 도우미도 같은 정밀도로 문서화하세요. 그래야 나중에 문자열, 튜플, 안정적인 키 중 무엇을 기대하는지 유지보수자가 알 수 있습니다.

목차