web-dev-qa-db-fra.com

Déclencheur clic dans TypeScript - La propriété 'clic' n'existe pas sur le type 'Élément'

Je voudrais déclencher un événement click sur un élément HTML dans TypeScript/Reactjs.

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

Le code ci-dessus fonctionne. Mais je reçois une erreur TypeScript:

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

Alors, quelle serait la bonne façon de faire cela?

20
Floris

Utilisez le type HTMLElement au lieu de Element. HTMLElement hérite de Element. Et dans la documentation, vous pouvez trouver que la fonction click est définie dans HTMLElement.

Jeter votre élément dans le HTMLElement via

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

Vous devriez utiliser ref pour accéder à DOM.

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

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

Ou bien, créez HtmlEvents et attachez-le à l'élément dom.

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

Utilisez comme ceci

(<HTMLElement>document.getElementsByClassName('btn')[0]).click()
2
Mukesh
document
  .querySelectorAll<HTMLElement>('.ant-table-row-expand-icon')
  .forEach(node => node.click())
0
Army-U