Reactjs 如何将自定义道具/方法注入“handleSubmit”?
我正在使用,并且正在寻找一种将自定义道具注入钩子返回的handleSubmit方法的方法。我之所以需要这样做,是因为我的组件充当了的使用者,我想在提交表单后更新状态。我可能还想将道具传递给该方法Reactjs 如何将自定义道具/方法注入“handleSubmit”?,reactjs,react-hooks,react-context,react-hook-form,unstated,Reactjs,React Hooks,React Context,React Hook Form,Unstated,我正在使用,并且正在寻找一种将自定义道具注入钩子返回的handleSubmit方法的方法。我之所以需要这样做,是因为我的组件充当了的使用者,我想在提交表单后更新状态。我可能还想将道具传递给该方法 从API来看,这似乎是不可能的。关于解决方法或如何做到这一点有什么想法吗?我不使用此库,但从useForm钩子返回的getValues函数似乎打开了将组件状态与react钩子表单中存储的表单数据同步的方法: 我不使用此库,但从useForm钩子返回的getValues函数似乎打开了将组件状态与react
从API来看,这似乎是不可能的。关于解决方法或如何做到这一点有什么想法吗?我不使用此库,但从useForm钩子返回的getValues函数似乎打开了将组件状态与react钩子表单中存储的表单数据同步的方法:
我不使用此库,但从useForm钩子返回的getValues函数似乎打开了将组件状态与react钩子表单中存储的表单数据同步的方法:
为什么不在handleSubmit期间更新状态
为什么不在handleSubmit期间更新状态
不幸的是,在我的情况下,我无法从函数体访问状态,只能从返回。。。块我在用。但是@Mateusz在imo中提出了一个很好的解决方案。不幸的是,在我的情况下,我无法从函数体访问状态,只能从返回。。。块我在用。但是@Mateusz提出了一个很好的解决方案。
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>
);
}
export default function App() {
const { register, getValues } = useForm();
const onSubmit = data => {
// do your state update here update(data)
}
return (
<form onSubmit={handleSubmit(onSubmit)}>
[...]
</form>
);
}