React-Hooks: невозможно включить ввод после его отключения - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь контролировать, включен или отключен ввод моих точек. Когда я нажимаю на флажок, он отключается, как и ожидалось. Когда я снимаю флажок, он остается отключенным. Сначала я попытался установить disabled={isChecked}, затем я создал его собственное состояние, которое я бы переключал с помощью useEffect, но это не работает. Как только он отключен, он не будет переключаться обратно во включенный.

  const [isChecked, setIsChecked] = useState(false);

  const handleChecked = event => {
    handleChange(event);
    setIsChecked(checked => !checked);
    setFieldValue(`questionData.${idx}.answers.${answer}.point`, 0);
    setFieldTouched(event.target.name);
  };



    <FormControlLabel
        control={
          <Checkbox
            name={`field1`}
            onChange={handleChecked}
            value={isChecked}
          />
        }
        label="Disable points"
        style={{ marginTop: 15, marginLeft: 8 }}
    />
    <FastField
      as={InputField}
      name={`field2`}
      label="Points"
      type="number"
      inputProps={{ min: '0', max: '100', step: '1' }}
      disabled={isChecked}
      handleError={handleError}
    />

1 Ответ

0 голосов
/ 28 февраля 2020

Вы должны добавить checked реквизит к вашему Checkbox

<FormControlLabel
  control={
    <Checkbox
      checked={isChecked}
      name={`field1`}
      onChange={handleChecked}
      value={isChecked}
    />
  }
  label="Disable points"
  style={{ marginTop: 15, marginLeft: 8 }}
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...