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

时间:2021-02-17 19:28:39

标签: react-native react-hook-form

在互联网上搜索并查看 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}
        />)
}

1 个答案:

答案 0 :(得分:1)

如果您阅读了自定义寄存器文档中的 defaultValues 部分,这就是您在 registeruseEffect 处的上述代码示例中所拥有的内容。

<块引用>

它不会自动填充手动注册的输入(例如: register({ name: 'test' })) 因为自定义注册字段没有 提供对 React Hook 表单的引用。

解决此问题。

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