React-hook-form 中的寄存器是什么类型?

Leo*_*ssi 11 javascript typescript reactjs typescript-typings react-hook-form

当将 React-hook-form 与 Typescript 一起使用时,有一个组件会发送一些 props,register作为其中之一。

问题在于在接口中声明时的类型:

export interface MyProps {
  title: string;
  ...
  register: (string | undefined) => void;
}
Run Code Online (Sandbox Code Playgroud)

这里的正确声明方式是什么register

还尝试过:

import { RegisterOptions } from 'react-hook-form';
    export interface MyProps {
      title: string;
      ...
      register: RegisterOptions;
    }
Run Code Online (Sandbox Code Playgroud)

Rit*_*ger 14

如果您在自定义组件中调用 register 作为 prop,或者在 Typescript 中的某些自定义输入字段中使用,那么您可以使用以下代码。

首先从“react-hook-form”导入 UseFormRegister 和 FieldValues

import {UseFormRegister, FieldValues } from 'react-hook-form'
Run Code Online (Sandbox Code Playgroud)

之后,定义寄存器类型为

register: UseFormRegister<FieldValues>
Run Code Online (Sandbox Code Playgroud)

繁荣,您不需要使用“任何”类型进行注册。


end*_*809 7

尝试这个。

import { RegisterOptions, UseFormRegisterReturn } from 'react-hook-form';

export interface MyProps {
  title: string;
  ...
  register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn;
}
Run Code Online (Sandbox Code Playgroud)