Mam problem, w którym chcę dodać parametr do atrybutu My click, wtedy wywołuje funkcję, jak tylko będzie to spowodowało

Oto mój test html:

return html`
       <button class="menu-btn" @click="${this._OpenSubMenu(1)}>test</button>" 
`;

}

I funkcja:

_OpenSubMenu(test:number) {
    console.log("Hello")
  }

To wyjście Hello, gdy tylko strona zostanie renderowana.

Więc jak mogę tego uniknąć, nadal dodając parametr do mojej funkcji?

0
Marc Rasmussen 14 październik 2020, 12:06

1 odpowiedź

Najlepsza odpowiedź

Musisz dokonać funkcji zwrócić funkcję. Twoja funkcja Click będzie następnie wykonywać zwracaną funkcję, a ze względu na zamknięcie nadal będzie miał dostęp do params.

Na przykład..

_OpenSubMenu(test:number) {
  var that = this;
  return function () {
     console.log("Hello");
     //test is also a closure so you can use here
     //that will equal this
  }
}

Jeśli chcesz uzyskać dostęp do this, można również użyć funkcji strzałki

_OpenSubMenu(test:number) {
  return () => {
     console.log("Hello");
     //test is also a closure so you can use here
     //this will also still be valid here
  }
}
1
Keith 14 październik 2020, 09:13