From 95c03c0fc89530a218f0f28c0232fbd7a585ee94 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 20 Nov 2017 11:17:58 -0800 Subject: [PATCH] Add links to event pooling docs --- content/docs/faq-functions.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/docs/faq-functions.md b/content/docs/faq-functions.md index 289c5621a..d276def3d 100644 --- a/content/docs/faq-functions.md +++ b/content/docs/faq-functions.md @@ -182,6 +182,8 @@ class Alphabet extends React.Component { If you have an event handler such as `onClick` or `onScroll` and want to prevent the callback from being fired too quickly, you can wrap the handler with a utility such as [`_.debounce`](https://lodash.com/docs#debounce) or [`_.throttle`](https://lodash.com/docs#throttle). For a given `delay`, say `100ms`, debouncing calls the handler after activity stops for that amount of time; throttling prevents the handler from being called more than once per `delay`. See a visualization [here](http://demo.nimius.net/debounce_throttle/). +Note: Call `event.persist()` when accessing events asynchronously to prevent the synthetic event from being recycled by [event pooling](/docs/events.html#event-pooling). See the debounce [example](#debounce) below. + #### Throttle ```jsx @@ -205,7 +207,7 @@ import debounce from 'lodash.debounce' class Searchbox extends React.Component { handleChange = event => { - event.persist() + event.persist() // https://reactjs.org/docs/events.html#event-pooling this._handleChangeDebounced(event.target.value) };