在互联网上搜索并查看 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}
/>)
}
答案 0 :(得分:1)
如果您阅读了自定义寄存器文档中的 defaultValues
部分,这就是您在 register
处 useEffect
处的上述代码示例中所拥有的内容。
它不会自动填充手动注册的输入(例如: register({ name: 'test' })) 因为自定义注册字段没有 提供对 React Hook 表单的引用。
解决此问题。
useController
:https://react-hook-form.com/api#useControllerregister
输入及其引用。 <input ref={register} />