Способ внедрения пользовательских реквизитов / методов в `handleSubmit`? - PullRequest
1 голос
/ 06 января 2020

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

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

Ответы [ 2 ]

2 голосов
/ 06 января 2020

Я не использую эту библиотеку, но похоже, что функция 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>
  );
}
1 голос
/ 10 января 2020

почему бы просто не обновить состояние во время 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>
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...