<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Chris</title>
    <description>The latest articles on DEV Community by Chris (@christocarr).</description>
    <link>https://dev.to/christocarr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F81962%2Fdca291a6-9edb-44b5-85b9-ed5073accbeb.jpeg</url>
      <title>DEV Community: Chris</title>
      <link>https://dev.to/christocarr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/christocarr"/>
    <language>en</language>
    <item>
      <title>Answer: Event Handler Not Setting State Before Component Renders</title>
      <dc:creator>Chris</dc:creator>
      <pubDate>Mon, 16 Sep 2019 19:09:25 +0000</pubDate>
      <link>https://dev.to/christocarr/answer-event-handler-not-setting-state-before-component-renders-594i</link>
      <guid>https://dev.to/christocarr/answer-event-handler-not-setting-state-before-component-renders-594i</guid>
      <description>&lt;div class="ltag__stackexchange--container"&gt;
  &lt;div class="ltag__stackexchange--title-container"&gt;
    
      &lt;div class="ltag__stackexchange--title"&gt;
        &lt;h1&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pTF_nE4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/stackoverflow-logo-b42691ae545e4810b105ee957979a853a696085e67e43ee14c5699cf3e890fb4.svg" alt=""&gt;
            &lt;a href="https://stackoverflow.com/questions/57962219/event-handler-not-setting-state-before-component-renders/57962294#57962294" rel="noopener noreferrer"&gt;
              &lt;span class="title-flare"&gt;answer&lt;/span&gt; re:  Event Handler Not Setting State Before Component Renders
            &lt;/a&gt;
        &lt;/h1&gt;
        &lt;div class="ltag__stackexchange--post-metadata"&gt;
          &lt;span&gt;Sep 16 '19&lt;/span&gt;
        &lt;/div&gt;
      &lt;/div&gt;
      &lt;a class="ltag__stackexchange--score-container" href="https://stackoverflow.com/questions/57962219/event-handler-not-setting-state-before-component-renders/57962294#57962294" rel="noopener noreferrer"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5MiFESHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/stackexchange-arrow-up-eff2e2849e67d156181d258e38802c0b57fa011f74164a7f97675ca3b6ab756b.svg" alt=""&gt;
        &lt;div class="ltag__stackexchange--score-number"&gt;
          0
        &lt;/div&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rk_a5QFN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/stackexchange-arrow-down-4349fac0dd932d284fab7e4dd9846f19a3710558efde0d2dfd05897f3eeb9aba.svg" alt=""&gt;
      &lt;/a&gt;
    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--body"&gt;
    
&lt;p&gt;You should not &lt;code&gt;setState&lt;/code&gt; within a &lt;code&gt;setState&lt;/code&gt; callback function.  Instead it should return the new state.  This:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;onHandlePrint = (pdf) =&amp;gt; {
    this.setState({pdf}, () =&amp;gt; {
      this.setState({pdfStatus: true})
    });
  };
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;should be:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;onHandlePrint = (pdf) =&amp;gt; {
    this.setState(() =&amp;gt; {pdf, pdfStatus: true});
  };
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But really if you don't need to…&lt;/p&gt;
    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--btn--container"&gt;
    
      &lt;a href="https://stackoverflow.com/questions/57962219/event-handler-not-setting-state-before-component-renders/57962294#57962294" rel="noopener noreferrer"&gt;Open Full Answer&lt;/a&gt;
    
  &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
  </channel>
</rss>
