react hook form set默认值不起作用



在网上搜索,看到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部分读取自定义寄存器,这就是您在上面的registeruseEffect的代码示例中所拥有的。

它不会自动填充手动注册的输入(例如:Register ({name: 'test'})),因为自定义寄存器字段没有

解决这个问题。

  1. useController: https://react-hook-form.com/api#useController
  2. register输入及其引用。<input ref={register} />

最新更新