2015-08-22 12 views
5

Na stronie z poradami dotyczącymi reakcji na Facebooku strona Communicate Between Components pokazuje przykład użycia funkcji bind() javascript do przekazania argumentów do metody handleClick() rodzica.Reaguj na wiązanie i utrzymuj dostęp do obiektu zdarzenia?

Działa to dobrze, z wyjątkiem użycia wiązania pierwszy argument procedury obsługi zdarzenia nie jest już wywołanym zdarzeniem. Nadal chciałbym mieć dostęp do wydarzenia, więc jakie mam opcje w tym zakresie?

+2

'onClick = {e => this.handleClick (e, i)}' – zerkms

+0

Awesome, to działało idealnie. Mogę teraz zapobiec domyślnemu wydarzeniu, a także mam dostęp do e.target :) Ponieważ jest to komentarz, nie mogę go jednak zaznaczyć jako odpowiedź. – Sgraffite

Odpowiedz

3

Wystarczy określić go jako

onClick={e => this.handleClick(e, i)} 

ten sposób można utworzyć nową funkcję anonimową że zarówno przechodzi oryginalnego zdarzenia i dane niestandardowe.

+0

bez ES6 jak to napisać? funkcja (e) { return this.handleClick (e, i); } ? –

+0

@ FrançoisRichard nie, musisz uchwycić "to" gdzieś poza tą anonimową funkcją, jak "var that = this;", a następnie użyć 'that' wewnątrz – zerkms

+0

, więc function (e) {var self = this; return self.handleClick (e, i); } działa poprawnie? –

Powiązane problemy