如何将React.memo与打字稿一起使用?

时间:2020-01-10 15:41:57

标签: javascript typescript react-hooks

我有一个输入组件。像下面。我现在正在显示不必要的代码。创建输入组件时,我必须将类型传递给。

const Input = React.memo(
   <T extends string = string>({
      initalValue,
      label,
      name,
      type = "text",
      otherProps = {},
      value,
      inputChangeHandler,
      options
   }: InputProps<T> & {
      value?: string;
      inputChangeHandler: (e: ChangeEvent) => void;
   }) => {

      if (type === "select") {
         return (
            ...
         );
      }
      return (
         ...
      );
   }
);

但是当我尝试像

一样使用时,上面的代码给出了错误
    89 |    function renderInput<T extends string = string>(input: InputProps<T>) {
    90 |       return (
  > 91 |          <Input<T>
       |                 ^
    92 |             {...input}
    93 |             key={input.name}
    94 |             value={inputsObject[input.name] as string}

错误是

期望0个类型参数,但得到1个

我知道我遗漏了一些非常明显的东西,但是我是钩子和打字稿的新手,所以无法修复它。请帮助我修复并使我理解错误的原因。

0 个答案:

没有答案