Рубрики
Без рубрики

Использование формы React Cook с реактивным крюком – часть II (предварительно заполненные значения и условные поля)

Эта статья является продолжением части I, где мы добавили RHF в наше настоящее приложение React-National. Пожалуйста, сделайте Sur … Помечено в Reactanation, JavaScript, React, Tutorial.

Эта статья является продолжением части I, где мы добавили RHF в наше настоящее приложение React-National. Пожалуйста, убедитесь, что вы прочитали первую часть для некоторого контекста.

Теперь мы посмотрим, как предварительно заполнить наши поля с помощью данных, извлеченных с сервера.

Давайте сделаем запрос, чтобы получить Эл. адрес и Имя фиктивного пользователя от JSONDOLLER Отказ Мы добавляем этот блок кода перед return () Заявление внутри нашего компонента (нам может потребоваться импортировать Useffect от реагировать Если он еще не импортируется).

useEffect(() => {
  fetchUser();
}, []);

const fetchUser = async () => {
  try {
    const response = await fetch(
      'https://jsonplaceholder.typicode.com/users/1'
    );
    const { name, email } = await response.json();
  } catch (error) {}
};

Теперь, когда у нас есть Email и Имя Значения, нам нужно прикрепить их к нашей форме. Для этого мы будем использовать SetValue Функция от RHF.

// add setValue to the list of destructured functions
const { handleSubmit, control, errors, setValue } = useForm();

// inside fetchUser function
const { name, email } = await response.json();
setValue('name', name);
setValue('email', email);

Теперь, когда мы запускаем наше приложение, мы заметим, что имя и поля электронной почты заполнены некоторыми значениями.

Мы можем редактировать эти значения, и когда мы нажимаем на отправку, все правила проверки должны работать, как ожидалось.

Теперь давайте посмотрим, как мы можем добавить условные поля в нашу форму, используя RHF. В нашем нынешнем примере мы используем Уместите контролировать переключение двух дополнительных полей.

Теперь мы подключим ваш коммутатор к своей форме. Для этого мы Оберните нашу <Выключатель/> Компонент внутри Контроллер от RHF.

 (
      
    )}
  />

Теперь нам нужно показать/скрыть дополнительные поля, основанные на значении IsbillingDifferent Отказ Для этого мы будем использовать Смотреть Функция от RHF. Он смотрит на указанные входы и возвращает их значение.

// add watch to the list of destructured functions from useForm
const { ...others,  watch } = useForm();

// watch isBillingDifferent as it changes
const isBillingDifferent = watch('isBillingDifferent');

Убедитесь, что мы также удалите IsbillingDifferent Укажите, что мы имели в нашем коде.

// delete the following line
const [isBillingDifferent, setIsBillingDifferent] = useState(false);

Там у нас есть! Теперь дополнительные поля будут слушать IsbillingDifferent Значение, чтобы определить, нужно ли им рендерировать. Единственное, что уходит для нас сейчас, – это провести дополнительные поля в RHF.

 (
      onChange(text)}
       value={value}
       placeholder="Billing Name"
     />
   )}
 />
 (
      onChange(text)}
       value={value}
       placeholder="Billing email"
     />
   )}
  />

Теперь у нас есть полнофункциональная форма с проверкой, предварительно заполненными данными и условными полями! Этот пример, однако, только царапает поверхность того, что может сделать RHF. Я всегда боролся с формами, а RHF, безусловно, самая простая реализация, которую я видел до сих пор! Дайте мне знать, что ваше предпочтительное решение для форм в реакции.

Спасибо за чтение и дайте ему ❤️, если вы нашли это полезным! Счастливое кодирование!

Оригинал: “https://dev.to/sankhadeeproy007/using-react-hook-form-with-react-native-part-ii-pre-filled-values-conditional-fields-ik1”