Cara menggunakan React Hook Form 7 dengan suis MUI
P粉231112437
P粉231112437 2023-09-16 19:43:09
0
1
630

Apabila menggunakan react-hook-form dengan suis MUI, suis tidak menunjukkan nilai awal pada pemuatan halaman walaupun nilai ditetapkan kepada benar. Walau bagaimanapun, ini nampaknya merupakan isu paparan, kerana menyerahkan borang tanpa menyentuh butang mengembalikan true dengan suis ditakrifkan sebagai benar. Selain itu, mengklik butang ini (ditunjukkan sebagai palsu) sekali tidak akan memberi kesan (ia masih kekal di sebelah kiri), dan klik kedua sebenarnya akan menogolnya semula.

Gunakan cangkuk untuk menetapkan nilai awal (digunakan untuk semua jenis medan lain):

useEffect(() => {
  if (userProfile) {
    setValue('firstname', userProfile.firstname);
    setValue('lastname', userProfile.lastname);
    setValue('show_profile', userProfile.show_profile || false);
  }
}, [userProfile]);

Suis dilaksanakan seperti berikut:

<FormControlLabel
    control={<Switch {...register('show_profile')} />}
    label="Profil öffentlich (beinhaltet Vor- und Nachname)"
/>

Ini pula merupakan komponen kotak semak yang berfungsi sepenuhnya:

<FormControlLabel
    control={
      <Checkbox
        {...register('steuerbescheinigung')}
        name="steuerbescheinigung"
      />
    }
    label="Steuerbescheinigung benötigt?"
  />

Bagaimana untuk menggunakan react-hook-form dalam suis MUI dan tetapkan nilai awal?

P粉231112437
P粉231112437

membalas semua(1)
P粉933003350

Berdasarkan dokumentasi.

Anda perlu menggunakan atribut react-hook-form中的Controller组件来包装您的Switch组件,并从字段对象传递valueonChange.

Contohnya:

<Controller
  name="show_profile"
  control={control}
  render={({ field: { onChange, value } }) => (
    <FormControlLabel
      control={<Switch checked={value} onChange={onChange} />}
      label="Profil öffentlich (beinhaltet Vor- und Nachname)"
    />
  )}
/>;

Anda boleh lihat contoh lengkap di sini.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan