2017-07-20 35 views
5

Co robisz, jeśli chodzi o wywoływanie kółka myszy w reaktjach?Wydarzenia koło myszy w Reactjs

Próbowałem onWheel

render: function() { 
    return <div onWheel = {this.wheel} > 
     < /div>; 
    }, 

i próbowałem onScroll

render: function() { 
    return <div onScroll = {this.wheel} > 
     < /div>; 
    }, 

Ale żadna z tych wydarzeń są zabierani. Patrz poniższy skrzypce:

https://jsfiddle.net/812jnppf/2/

+0

Teoretycznie zdarzenie syntetyczne onWheel jest tym, czego chcesz użyć, mam nagie kości, tworząc aplikację-aplikacją reagowania, a onWheel działa dobrze dla mnie. Po prostu nie mogę sprawić, żeby twoja jsfiddle działała na koła, ale zdarzenia kliknięć nie stanowią problemu: https://jsfiddle.net/812jnppf/8/ –

Odpowiedz

3

pierwszy, wysokość div jest 0, więc nie przejść na jej temat. Nie musisz wiązać tego, ponieważ jest to klasa (a nie element reagujący ES6). Wystarczy zrobić wywołanie funkcji z przypadku jako parametr w przypadku onWheel:

https://jsfiddle.net/812jnppf/9/

render: function() { 

    return <div style={{height:300, width:300}} onWheel = {(e) => this.wheel(e)} >  < /div>; 
}, 

Oczywiście, trzeba oczyścić kod stylizowania div z var lub w css.

EDYCJA: Ustawiam naWheel, a nie na onScroll (czarownica nie istnieje, jak sądzę? Potwierdź, jeśli wiesz). Widziałem wiadomość SO o dodawaniu zdarzenia przewijania do komponentu easilly: https://stackoverflow.com/a/29726000/4099279

+1

ah oczywiście głupi mnie. To było na niewłaściwym pojemniku. Moje następne pytanie brzmi: jak interpretować zdarzenia y = 100 y = -100 i jak uzyskać efekt powiększania. –

1

Bind wywołanie zwrotne do this:

render: function() { 
    return <div onWheel = {this.wheel.bind(this)} > 
     < /div>; 
} 
+0

nie działa. Zobacz: https://jsfiddle.net/812jnppf/7/ –