Подтвердить что ты не робот

Триггерный щелчок в Typescript - Свойство 'click' не существует в типе 'Элемент'

Я хотел бы вызвать событие click для элемента HTML в Typescript/Reactjs.

let element: Element = document.getElementsByClassName('btn')[0];
element.click();

Приведенный выше код работает. Но я получаю ошибку Typescript:

ERROR in [at-loader] ./src/App.tsx:124:17
TS2339: Property 'click' does not exist on type 'Element'.

Итак, каков был бы правильный способ сделать это?

4b9b3361

Ответ 1

Используйте HTMLElement вместо Element. HTMLElement наследуется от Element. И в документации вы можете обнаружить, что функция click определена в HTMLElement.

Передайте свой элемент в HTMLElement через

let element: HTMLElement = document.getElementsByClassName('btn')[0] as HTMLElement;
element.click();

Ответ 2

Вы должны использовать ref для доступа к DOM.

<button  ref={button => this.buttonElement = button} />
In your event handler:

this.buttonElement.click();// trigger click event

Или, создайте HtmlEvents и присоедините элемент dom.

var event = document.createEvent("HTMLEvents");
event.initEvent("click", true, true);
var button = document.getElementsByClassName('btn')[0];
button.dispatchEvent(event);

Ответ 3

Используйте как это

(<HTMLElement>document.getElementsByClassName('btn')[0]).click()