Как добавить пользовательские свойства / методы в handleSubmit?

Я использую форму реагирования на крючок, и я ищу способ добавить настраиваемые реквизиты вhandleSubmitметод, возвращаемый ловушкой. Причина, по которой мне нужно это сделать, заключается в том, что мой компонент действует какConsumerдля государственной библиотеки, и я хочу обновить состояние после отправки формы. Я также могу передать методу реквизиты.

Глядя на API, кажется, что это невозможно. Есть мысли об обходном пути или как это сделать?

2 ответа

Решение

Я не использую эту библиотеку, но кажется, что getValues функция возвращается из useForm hook открывает способ синхронизации состояния вашего компонента с данными формы, хранящимися в "response-hook-form":

документы

import React, { useMemo, useEffect, useState } from "react";
import { useForm } from "react-hook-form";

export default function App() {
  const { register, getValues } = useForm();
  const [ valuesState, setValuesState ] = useState();

  const values = useMemo(() => getValues());

  useEffect(() => setValuesState(values), [values]);

  return (
    <form>
      [...]
    </form>
  );
}

Почему бы просто не обновить состояние во время handleSubmit?

export default function App() {
  const { register, getValues } = useForm();
  const onSubmit = data => {
    // do your state update here update(data)
  }

  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      [...]
    </form>
  );
}
Другие вопросы по тегам