{"componentChunkName":"component---src-templates-docs-js","path":"/docs/legacy-event-pooling.html","result":{"data":{"markdownRemark":{"html":"<blockquote>\n<p>Nota</p>\n<p>Esta página é relevante apenas para React 16 e anteriores, e para React Native.</p>\n<p>React 17 na web <strong>não</strong> usa pool de eventos.</p>\n<p><a href=\"/blog/2020/08/10/react-v17-rc.html#no-event-pooling\">Mais informações</a> sobre esta mudança no React 17.</p>\n</blockquote>\n<p>Os objetos <a href=\"/docs/events.html\"><code class=\"gatsby-code-text\">SyntheticEvent</code></a> são agrupados. Isso será reutilizado e todas as propriedades serão anuladas após a chamada do manipulador de eventos. Por exemplo, isso não funcionará:</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">function</span> <span class=\"token function\">handleChange</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">e</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// Isso não funcionará porque o objeto de evento é reutilizado.</span>\n  <span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">.</span>target<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// Muito tarde!</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Se você precisar acessar as propriedades do objeto de evento após a execução do manipulador de eventos, você precisa chamar <code class=\"gatsby-code-text\">e.persist()</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">function</span> <span class=\"token function\">handleChange</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">e</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// Evita que o React redefina suas propriedades:</span>\n  e<span class=\"token punctuation\">.</span><span class=\"token function\">persist</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">.</span>target<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// Works</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>","frontmatter":{"title":"Pooling de Eventos","next":null,"prev":null},"fields":{"path":"content/docs/legacy-event-pooling.md","slug":"docs/legacy-event-pooling.html"}}},"pageContext":{"slug":"docs/legacy-event-pooling.html"}},"staticQueryHashes":[]}