Свойство «сброс» не существует для типа «HTMLInputElement». ts(2339)

#reactjs #typescript

Вопрос:

Я знаю, что должен использовать состояние для ввода, максимально избегая прямого доступа к Dom в react, но это уникальная и необходимая ситуация.

Я нашел похожие вопросы на этот, но я не могу воспроизвести их в своем конкретном случае с помощью » reset ()», может кто-нибудь мне помочь?

Код:

 import { useRef } from 'react';

const infoInputRef = useRef<HTMLInputElement>(null);

infoInputRef.current.reset();

 

Ошибка машинописного текста, подчеркивающая сброс():

 Property 'reset' does not exist on type 'HTMLInputElement'.ts(2339)
 

Комментарии:

1. Что заставляет вас думать, что у a HTMLInputElement должен быть метод с именем reset() ?

2. Две вещи: 1) but this is a unique and necessary situation. — я сильно в этом сомневаюсь. 2) В соответствии со спецификацией ( developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement ) reset в HTMLInputElement отсутствует, поэтому ошибка верна.

3. Согласен с вами обоими, но как мне сбросить ввод?

4. infoInputRef.current.value = '' я думаю.

5. Ну, это зависит от того, что вы понимаете под «сбросить» (вероятно, установив его значение на какое-то значение по умолчанию) и откуда берутся значения по умолчанию … Но в целом это было бы infoInputRef.current.value = whateverDefaultValue