react-hook-form
useForm
from react-hook-form
formを作る時に使う最も基本的なhooks
できることが多い
useForm()
の引数でいくつかのoptionsを設定できる useForm()
の返り値として色々返ってくる型
useForm<FormData>()
返り値
unregister
いつ使うんだ #??
formState ref
formの状態をsubscribeして、errorの内容とかが見れる
例えばこういう書き方はしてはいけない
return <button disabled={!formState.isDirty || !formState.isValid} />;
watch ref
getValues ref
handleSubmit ref
submitする時に使う
reset
全てのfieldをresetする
引数に与えられたrecordをセットする
resetField
個々のfieldをresetする
setValue
valueをset
ルールが割とある
実行時に再renderingを引き起こすかどうかは条件がある
基本的には引き起こされない、という認識で良い
errorがある時や、
formState.isDirty == true
にしたときは、引き起こされる 引数に
{ shouldValidate: true }
を指定すれば、validationされる triggerしているのと同じ感じになる
これを指定しないとvalidationされない
rootから再renderingされてるっぽい
recordをまるごとsetするにはどうしたらいいか?
reset(fields)
を使う setFocus
fieldにfocusする
control
RHFのControllerにわたすやつ
getFieldState
v7.25で入った
isDirty
、 isTouched
、 error
などを返す setError
手動でerrorを指定する
clearErrors
errorを消す
trigger
手動でvalidationをtriggerさせる
配列を渡すことで、指定したfieldだけtriggerできる
rootから再renderingされてる
setErrorとは何が違うの #??
他のfieldの内容に依存するvalidationを作る時に便利?
options
defaultValues
初期値
shouldUnregister
わからん #??
shouldUseNativeValidation
false,
delayError
undefined
validation関連のoptions
mode
どのタイミングでvalidationをするかを指定する
e.g.
onSubmit
, onChange
, onTouched
reValidateMode
onSubmit
の実行後、errorが出ている状態でのmode どのタイミングでvalidation errorを更新するかを指定する
選択肢はmodeとほぼ同じ
resolver
外部ライブラリを用いてvalidationする
shouldFocusError
validarion errorがある状態でsubmitした時に、errorがあるfieldにfocusさせる
criteriaMode
一つのfieldに複数のvalidation ruleを指定できるが、それを全部収集するか1つ目だけを収集するか
たぶん #??
context
resolver関連のなにか
よくわからん #??