Я пытаюсь передать TextField из material-ui в контроллер формы response-hook, но он возвращается как функция. Не удалось импортировать типы свойств и потребовать объект.

import React from 'react';
import { useFormContext, Controller } from 'react-hook-form';
import { TextField, Grid } from '@material-ui/core';

function FormInput({ name, label, required }) {
  const { control } = useFormContext();
  const isError = false;

  return (
    <Grid item xs={12} sm={6}>
      <Controller
        as={TextField}
        name={name}
        control={control}
        label={label}
        fullWidth
        required={required}
        error={isError}
      />
    </Grid>
  );
}

export default FormInput;
1
Jordan Silver 6 Апр 2021 в 00:20

1 ответ

Лучший ответ

Во-первых, опора as устарела, рассмотрите возможность использования опоры render или ловушки useController. Это не работает, потому что есть проблема с ref.

Вот рабочий пример без контроллера: React Hook Form V7 - Текстовое поле MUI

А вот с крючком useController: React Hook Form V7 - MUI TextField useController < / а>

Вы можете найти документацию по useController здесь: https: // response-hook-form .com / api / usecontroller.

1
Joris 5 Апр 2021 в 21:58