TypeScript 'this' é indefinido ao chamar uma função em HTML String

Sep 15 2020

Quero chamar uma função TypeScript simples de dentro de uma variável HTML. O botão com o HTML está tentando chamar '_Myfunction' que cria um Alert (); simples.

Clicar no botão produz o seguinte erro:

typeError: Não é possível ler a propriedade '_Myfunction' de indefinido

Como posso resolver esse erro? E o código está abaixo:

  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);
  }

Respostas

1 DBA108642 Sep 15 2020 at 16:25

Substitua function(resolvedValue) {porresolvedValue => {

e isso deve ser bom