这是一个自定义的输入组件
const Input = ({props}) => {
return (
<input type="text" {...props} {...props.reg}/>
);
};
我给这个自定义输入传递了一个React Hook Form注册函数。
<Input props={{
placeholder: 'Name',
id: 'form__name',
name: 'name',
reg: {...(register('name'), {required: true})}
}}/>
输入是注册的,我无法弄清楚展开运算符前的圆括号是什么意思。
它是什么样的JS/React语法?…(xxx, xxx)
注:这行代码
reg: {...(register('name'), {required: true})}
取自youtube视频,我只是重写了一下,但是视频
中仍然使用了展开运算符前的圆括号逗号操作符很少以这种方式使用,但实际上,如果您这样做:
statment1, statement2
则返回第二条语句。但是,执行statment1
,只是不返回。
这里是用来注册字段的,但是括号内语句的结果实际上只是{required: true}
。
括号本身只是把这个内部逗号语句括起来。首先计算括号内的值,然后展开计算结果。
更多信息在这里https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator