TypeScript 'this' ist undefiniert, wenn eine Funktion in HTML String aufgerufen wird

Sep 15 2020

Ich möchte eine einfache TypeScript-Funktion aus einer HTML-Variablen heraus aufrufen. Die Schaltfläche mit dem HTML-Code versucht, '_Myfunction' aufzurufen, wodurch ein einfacher Alert (); erstellt wird.

Wenn Sie auf die Schaltfläche klicken, wird der folgende Fehler angezeigt:

typeError: Die Eigenschaft '_Myfunction' von undefined kann nicht gelesen werden

Wie kann ich diesen Fehler beheben? Und der Code ist unten:

  constructor() {
    super();

  }
  postInitialize(): void {

  }
  render() {
        
    this.mapHelper.map.getSelectedAssets().then(function(resolvedValue) {
        if(resolvedValue != null){

            masterHTMLstring = 
                <table style="background-color:#FFFFFF;width:200px;">
                  {resolvedValue.map((item, index) => (
                    <tr key={index}>     
                       <td>
                        <button id={item.EntityUid} onclick={() => this._myfunction(item.EntityUid)}>Add</button>
                      </td>
                    </tr>
                  ))}
                </table>;


        }   

      }, function(error) {
          //masterHTMLstring = "error";

      });
    return <div class="basemap23"  >{masterHTMLstring}</div>;
  }

  destroy(): void {
    this._handles.destroy();
    this._handles = null;
  }
    
  public _myfunction(entityID: string): void {
    alert(entityID);
  }

Antworten

1 DBA108642 Sep 15 2020 at 16:25

Ersetzen function(resolvedValue) {durchresolvedValue => {

und das sollte gut sein