反应挂钩表单设置默认值不起作用

react hook form set default values not working

在互联网上搜索并查看 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 上面的代码示例中看到的内容。

It doesn't auto populate with the manually registered input (eg: register({ name: 'test' })) because the custom register field does not provide the ref to React Hook Form.

解决这个问题。

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