Как проверить react select

#javascript #reactjs #react-hooks #react-select #react-hook-form

#javascript #reactjs #реагирующие хуки #реагировать-выбрать #react-hook-форма

Вопрос:

Я использую react-select для лучшего просмотра пользовательского интерфейса, и я его реализовал, теперь я пытаюсь сделать

  • Я хочу проверить это поле ввода, когда пользователь нажимает на кнопку Готово (форма отправки)
  • Я использую react-hook-form для проверки
  • Они предоставляют ref={register} , который содержит значение поля ввода
  • итак, для обычного поля ввода или выбора я могу использовать это, как показано ниже
 <label  htmlFor="fname">
    First Name
</label>
<input
    type="text"
    name="fname"
    id="fnameid"
    className="form-control"
    ref={register({
        required: 'First name is required',
    })}
/>

{errors.fname amp;amp; (
    <div>
        <span className="text-danger">
            {errors.fname.message}
        </span>
    </div>
)}
 

Теперь вышеописанное работает нормально, но в случае react-select , если я не знаю, как двигаться дальше

 <Select
    value={initailSelect}
    onChange={(e) => onChangeAge(e)}
    options={data}
/>
 

Итак, здесь, когда я нажимаю на кнопку отправки, выполняется проверка только для fname и вывод на консоль только для fname

Я попытался сделать, как показано ниже

 <Select
    value={initailSelect}
    onChange={(e) => onChangeAge(e)}
    options={data}
    ref={register({
        required: 'age is required is required',
    })}
/>
 

Песочница кода Вот моя песочница кода Мой рабочий код, пожалуйста, проверьте

Редактировать

Я пробовал этот подход, но он не принимает defaultValue или Value , поскольку я хочу показать одно выбранное значение, и в некоторых случаях я получаю значения с сервера, которые я хочу показать как выбранные.

Комментарии:

1. проверьте контроллер в форме react hook react-hook-form.com/get-started#IntegratingwithUIlibraries

2. вы можете использовать блок кода для раздела кода, чтобы сделать ваш вопрос хорошим

3. @SreevardhanReddy Я уже проверил и реализовал это, но проблема в том, что он не принимает значение по умолчанию.

Ответ №1:

Вот ссылка для codesandbox, вы можете либо обернуть компонент в контроллер, либо использовать setValue для ручной установки значений и проверки

https://codesandbox.io/s/bitter-wave-w1cpi?file=/src/App.js:2084-2802

https://w1cpi.csb.app/

ссылка https://react-hook-form.com/get-started#IntegratingwithUIlibraries

Комментарии:

1. эй, здесь он не принимает значение по умолчанию или значение, поскольку я хочу показать первое как выбранное

2. Я пробовал с установленными значениями, там не отображаются значения при отправке

3. @manishthakur Установленное значение не работает, потому что оно запускается до регистрации вашего поля. Попробуйте использовать setTimeout