Как добавить пользовательские свойства / методы в 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>
);
}