ho bisogno di strozzare l'evento MouseMove, e seguo i suggerimenti di seguito per costruire il metodo, ma non funziona: Perform debounce in React.jsReact.js Throttle MouseMove continuare a lanciare event.persist() Errore
Ecco il mio codice (http://jsbin.com/binesofepo/edit?js,console,output):
class Tool extends Component {
constructor(props) {
super(props);
this._onMouseMove = _.throttle(this._onMouseMove.bind(this), 1000)
}
render() {
return (
<div ref="tool" className="tool">
<div ref="toolBody"
className="tool__body"
onMouseMove={this._onMouseMove}></div>
</div>
)
}
_onMouseMove(e) {
e.persist()
console.log(e.screenX)
}
}
Se si mantiene MouseMove sul tool__body
, si otterrà un sacco di sotto di avvertimento:
Attenzione: questo s l'evento yththetic viene riutilizzato per motivi di prestazioni. Se stai vedendo questo, stai accedendo alla proprietà
screenX
su un evento sintetico rilasciato/annullato. Questo è impostato su null. Se devi mantenere l'evento sintetico originale in giro, usa event.persist(). Vedi fb.me/react-event-pooling per maggiori informazioni.
la mia reagiscono versione: "15.0.2"
Sembra e.persist()
non funziona bene. Qualche idea? : D
Sembra un messaggio di errore abbastanza utile per me. Hai seguito il link suggerito https://facebook.github.io/react/docs/events.html#event-pooling? –
sì, quindi aggiungo 'e.persist()' nel mio '_onMouseMove', ma non lavoro – twxia