Тип inputRef - TypeScript - PullRequest
       1

Тип inputRef - TypeScript

0 голосов
/ 10 июля 2020

У меня есть компонент React, который принимает в качестве свойств inputRef

Мой интерфейс

interface Props extends WithStyles<typeof styles> {
  body: text
  inputRef?: any // I am not sure which TypeScript type I should use
}

Мой компонент

const MyComponent = ({
  classes,
  body,
  inputRef
}: Props) => {
  <TextField
    body={body}
    inputRef={inputRef}
  />
}

Я не уверен, какой тип TypeScript мне следует использовать для inputRef. В настоящее время я объявляю его как any, но мне нужен правильный тип.

Я пытался использовать React.createRef<TextInput>(), но получаю сообщение об ошибке: Namespace 'React' has no exported member 'createRef'

У меня есть версия as types: "@types/react": "^16.9.21"

1 Ответ

1 голос
/ 10 июля 2020

Вот как я это понял. Когда я создаю ссылку на элемент:

const wrapperRef = useRef<HTMLDivElement>(null);

, я нахожу указатель на переменную wrapperRef в VSCode, чтобы узнать, какой это тип. В этом случае я вижу:

const wrapperRef: RefObject<HTMLDivElement>

Итак, вы хотите передать RefObject<HTMLDivElement>.

Теперь, если вы хотите, чтобы впереди были ElementRef, go, и используйте это (Я не уверен, какую рефери вы пытаетесь сдать). Когда вы посмотрите документацию или файл фактического типа, вы увидите <T>. Это Машинопись Generi c. Он позволяет передать тип объявлению типа. Вот некоторая документация с множеством примеров.

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