来自 useForm 文档:https://react-hook-form.com/api/useform/register/
这称为对象解构.您可以在此处了解更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
解释
输入元素有很多属性,如 onChange、onBlur、name、ref... 等。
和登记函数,当通过传递参数调用时,返回我上面提到的所有这些属性。
所以这:
const { onChange, onBlur, name, ref } = register('firstName');
创建四个变量(const),稍后可以在我的元素中使用
<input
onChange={onChange}
onBlur={onBlur}
name={name}
ref={ref}
/>
现在,假设我有一个函数可以打印 register('firstName') 拥有的所有值。
const printFunction = (onChangeParameter, onBlurParameter, nameParameter, refParameter) => {
console.log(onChangeParameter, onBlurParameter, nameParameter, refParameter)
};
但我不想称它为一次提取每个变量,然后将其放入函数中(像这样):
const { onChange, onBlur, name, ref } = register('firstName');
printFunction(onChange, onBlur, name, ref);
所以我只能破坏register('firstname') 在函数内部。
printFunction(...register('register'));
并且基本上得到相同的结果,但要快得多。
这就是输入元素中发生的事情。您正在调用一个返回多个内容的函数,并抓取其中的每一个并将其放入输入元素中。