Как компонент рейтинга React Material UI используется в форме? - PullRequest
1 голос
/ 01 августа 2020

Я пытаюсь использовать компонент рейтинга React Material UI в форме response-hook.

  ... 
  <form onSubmit={handleSubmit(onSubmit)}>
      <FormControlLabel
        control={
          <Checkbox
            inputRef={register}
            name="remember"
            defaultValue={false}
          />
        }
        label="remember"
      />
      <br />
      <FormControlLabel
        control={
          <Rating
            inputRef={register}
            name="rating"
            defaultValue={2}
            precision={1}
            icon={<RadioButtonUncheckedIcon fontSize="inherit" />}
          />
        }
        label="select rating"
      />
      <Button type="submit">
        Submit
      </Button>
    </form>
    ...

Я не могу понять, почему значение из компонента рейтинга не регистрируется, а значение флажка является. Найдите код в https://codesandbox.io/s/suspicious-drake-1d0kx?file= / src / form. js (при отправке значение рейтинга не выводится на консоль, пока значение флажка равно).

1 Ответ

1 голос
/ 01 августа 2020

Согласно do c, Rating не имеют элемента input для передачи ссылки как TextField или Checkbox, поэтому решение состоит в том, чтобы создать скрытый ввод вместо для хранения значения рейтинга

<FormControlLabel
  control={
    <>
      <input
        name="rating"
        type="number"
        value={rating}
        ref={register}
        hidden
        readOnly
      />
      <Rating
        name="rating"
        value={rating}
        precision={1}
        onChange={(_, value) => {
          setRating(value);
        }}
        icon={<RadioButtonUncheckedIcon fontSize="inherit" />}
      />
    </>
  }
  label="select rating"
/>

Ниже разветвленные коды и ссылка на ящик для модификации

Отредактируйте cool-cache-o4o7 c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...