Open6

React Hook Form

よしにゃんよしにゃん
import { useForm, SubmitHandler } from "react-hook-form"

import * as rhf from "react-hook-form"

の違い。
上は、部分指定してimport。
下は、一度全部importして別名をつけている。
下は、rhf.関数名で呼べる。
上は、関数名で呼べる。

参考
https://javascript.info/import-export#import

よしにゃんよしにゃん

配列のindexを指定して監視

const first = useWatch({
    control,
    name: 'list.0', // 'fileList' 配列の最初の要素を監視
});

  const second = useWatch({
    control,
    name: 'list.1', // 'fileList' 配列の2番目の要素を監視
});
よしにゃんよしにゃん

useController と Controller の比較
useControllerは細かい制御が可能で、再利用しやすいらしい
Controllerは複数入力フィールドがあって、ラップしたり、外部ライブラリと一緒に使うときにシンプル実装できるらしい

useControllerのコンポーネントバージョンがControllerらしい。

参考
https://github.com/orgs/react-hook-form/discussions/7852

よしにゃんよしにゃん

useFormにzodResolverを指定する。
useFormContextには指定できない。

useForm<FormData>({ resolver: zodResolver(schema) })
よしにゃんよしにゃん

NiceModalと合わせて使うときはNiceModalごと、FormProviderで囲むといいらしい。

<FormProvider {...methods}>
      <NiceModal.Provider>
        // 省略
      </NiceModal.Provider>
</FormProvider>