Присвоение ссылки HTMLInputElement дает ошибку в машинописном тексте
В переменной useRef нельзя установить входной элемент
const inputRef = React.useRef<HTMLInputElement>(null);
<Input name="answer" ref={inputRef}/>
На <Input ref="">
Я получаю следующую ошибку
ht tps://stackru.com/imag es/30ee023044946f6b9855290cd84e8229c73371b7.png
Любая идея, как это исправить. Заранее спасибо
Мой полный код:
ht tps://stackru.com/imag es/2ed1df48f8b3146263af213fe582bb0f6e4ad755.png
1 ответ
Ваш реф не назначен HTMLInputElement
но Input
составная часть. Вам необходимо определить его тип соответственно
Поскольку Input является функциональным компонентом, вы не можете напрямую указать ссылку на него, вам нужно переслать ссылку, и для этого вам нужно использовать React.forwardRef
const inputRef = React.useRef<HTMLInputElement>(null);
..
<Input name="answer" ref={inputRef}/>
...
const Input = React.forwardRef((props, ref: React.Ref<HTMLInputeElement>) => (
<input ref={ref} {...props} />
));
Поскольку вы используете semantic-ui-react, чтобы передать ссылку на компоненты, вам необходимо использовать Ref
компонент из библиотеки
import {Ref } from 'semantic-ui-react';
...
const inputRef = React.useRef<HTMLInputElement>(null);
..
<Ref innerRef={inputRef}><Input name="answer" ref={inputRef}/></Ref>
Проверить bit.dev
Больше подробностей