如何向“ handleSubmit”注入自定义道具/方法?

时间:2020-01-06 15:35:21

标签: reactjs react-hooks react-context react-hook-form unstated

我正在使用state library,并且正在寻找一种方法来将自定义道具注入到该钩子返回的handleSubmit方法中。我需要这样做的原因是我的组件充当{{3}}的Consumer,并且我想在提交表单后更新状态。我可能还想将道具传递给该方法。

通过查看API,看来这是不可能的。关于解决方法或如何执行此操作的任何想法?

2 个答案:

答案 0 :(得分:2)

我不使用该库,但似乎getValues钩子返回的useForm函数打开了将组件状态与“ react-hook-form”中存储的表单数据进行同步的方式:

docs

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 :(得分:1)

为什么不只在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>
  );
}