在网上搜索,看到defaultValues
属性的技巧,所以准备下面的代码,但它仍然不工作?
怎么了?
import {useForm} from 'react-hook-form';
export const ProfileForm = (props) => {
const {register, handleSubmit, setValue, errors} = useForm({
defaultValues: {name: 'test'},
});
useEffect(() => {
register('name', {required: 'Name field is required'});
}, [register]);
console.log('errors', errors);
return (
<Input
label="Name"
placeholder="Enter name"
onChangeText={(text) => setValue('name', text)}
errorMessage={errors.name?.message}
/>)
}
如果您在文档中的defaultValues
部分读取自定义寄存器,这就是您在上面的register
在useEffect
的代码示例中所拥有的。
它不会自动填充手动注册的输入(例如:Register ({name: 'test'})),因为自定义寄存器字段没有
解决这个问题。
useController
: https://react-hook-form.com/api#useControllerregister
输入及其引用。<input ref={register} />