muszę zdławić mouseMove zdarzenie, i postępuj według wskazówek poniżej, aby zbudować metodę, ale nie działa: Perform debounce in React.jsReact.js udusić mouseMove zdarzenie zachować rzucanie event.persist() Błąd
Oto mój kod (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)
}
}
Jeśli trzymać mouseMove na tool__body
, to będzie uzyskać wiele poniżej ostrzeżenia:
ostrzeżenie: s yntetyczne wydarzenie jest ponownie wykorzystywane ze względu na wydajność. Jeśli widzisz to, masz dostęp do usługi
screenX
w wydaniu syntetycznym wydanym/usuniętym. Ta wartość ma wartość NULL. Jeśli musisz zachować oryginalne wydarzenie syntetyczne, użyj event.persist(). Aby uzyskać więcej informacji, zobacz fb.me/react-event-pooling.
moich reagować wersję: "15.0.2"
Wydaje e.persist()
nie działa dobrze. Dowolny pomysł? : D
Wydaje mi się bardzo przydatny komunikat o błędzie. Czy postępowałeś zgodnie z sugerowanym linkiem https://facebook.github.io/react/docs/events.html#event-pooling? –
tak, więc dodam 'e.persist()' w moim '_onMouseMove', ale nie działa – twxia