문제 해결
이 문서는 다른 라이브러리의 가정을 Form의 명시적인 모델에 섞을 때 자주 생기는 실패 패턴을 정리합니다.
user.name이 중첩 데이터를 바꾸지 않음
문자열 경로는 그대로 하나의 이름입니다. 중첩 데이터에는 ['user', 'name']을 사용하세요. 점이 들어간 최상위 키가 실제로 필요하다면 문자열을 유지하면 됩니다.
어댑터 import가 실패함
해당 프레임워크 피어 의존성을 설치하고 하위 경로에서 가져오세요. 경로는 @ilokesto/form/react, @ilokesto/form/vue, @ilokesto/form/solid, @ilokesto/form/svelte입니다. 루트 패키지는 프레임워크 도우미를 내보내지 않습니다.
검증이 예상과 다른 시점에 실행됨
validateOn을 확인하세요. change는 사용자 쓰기 뒤에 실행되고, blur는 필드가 blur될 때 실행되며, submit은 제출 중 실행됩니다. manual 흐름에서는 trigger()를 직접 호출해야 합니다. field-local 스키마는 해당 필드에서 우선하므로 폼 전체 Standard Schema와 함께 비교해 보세요.
배열 오류가 이상하게 이동함
렌더링에는 form.array(path) 명령과 keys()를 사용하세요. 완전히 새 데이터셋을 불러올 때 배열을 직접 교체하는 것은 괜찮을 수 있지만, 자식 메타데이터를 재배치하려면 insert, push, remove, move, swap, replace가 의도된 경로입니다.
제출은 성공했지만 서버 오류가 돌아옴
서버 오류는 원격 상태에 의존하는 경우가 많습니다. setErrors로 추가하고, 필드 근처나 요약 영역에 보여주며, 사용자가 수정하거나 다시 시도할 때 clearErrors로 지우세요. 반복 제출은 useFormState()의 submitCount로 추적할 수 있습니다.