Триггерный щелчок в 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'.
Итак, каков был бы правильный способ сделать это?
Ответы
Ответ 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()