Как использовать React.memo с машинописью? - PullRequest
0 голосов
/ 10 января 2020

У меня есть компонент ввода. Как ниже. Я сейчас показываю ненужный код. Я должен передать тип при создании компонента ввода.

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

Я знаю, что упускаю что-то очень очевидное, но я новичок в хуках и машинописи, поэтому не могу это исправить. Пожалуйста, помогите мне исправить и объяснить причину ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...