如何在 React Hook 表单中将对象传递给 onSubmit

sth*_*119 3 javascript reactjs react-native react-hook-form

使用时react-hook-form我需要将任意数据传递到onSubmit函数中。示例代码:

function App() {
  const { register, handleSubmit } = useForm();
  const navigation = { foo: 'bar' }; // object to pass
  const onSubmit = (data) => {
    // how to access navigation here?
    console.log(data);
    console.log(navigation); // undefined
  }; 
  return (
    <form onSubmit={handleSubmit(onSubmit)}> // <<== pass navigation here as arg? 
      <input defaultValue="test" {...register("example")} />
      <input type="submit" />
    </form>
  );
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能把我的对象navigationonSubmit

Tak*_*aki 7

handleSubmit(onSubmit)意味着您onSubmit通过引用传递并且data默认采用的是,调用handleSubmit如下:

<form onSubmit={handleSubmit(data => onSubmit(data, navigation))}>
Run Code Online (Sandbox Code Playgroud)

并且该对象应该在此处可用:

const onSubmit = (data, obj) => {
  console.log(data, obj);
};
Run Code Online (Sandbox Code Playgroud)