<h3 dir="auto">Problem description</h3>
<p dir="auto">When props.animated is true, Popover calls setState from within a setTimeout.</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// in componentWillReceiveProps
if (nextProps.animated) {
   this.setState({ closing: true });
   this.timeout = setTimeout(function () {
     _this2.setState({
        open: false
     });
   }, 500);
}"><pre class="notranslate"><span class="pl-c">// in componentWillReceiveProps</span>
<span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">nextProps</span><span class="pl-kos">.</span><span class="pl-c1">animated</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
   <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">setState</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">closing</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
   <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">timeout</span> <span class="pl-c1">=</span> <span class="pl-en">setTimeout</span><span class="pl-kos">(</span><span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
     <span class="pl-s1">_this2</span><span class="pl-kos">.</span><span class="pl-en">setState</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
        <span class="pl-c1">open</span>: <span class="pl-c1">false</span>
     <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
   <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c1">500</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Because <a href="https://facebook.github.io/react/blog/2016/01/08/A-implies-B-does-not-imply-B-implies-A.html" rel="nofollow">componentWillReceiveProps doesn't mean that props changed</a>, Popover has the potential to call setState from within the setTimeout multiple times, when no props have changed.  For me, this is consistently causing an error where setState is called on an unmounted component.</p>
<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">Rapidly re-render Popover (animated=true) after having changed open to false.</p>
<h3 dir="auto">Versions</h3>
<ul dir="auto">
<li>Material-UI: 0.15.3</li>
<li>React: 15.3.0</li>
<li>Browser:  Chrome Version 52.0.2743.116 (64-bit)</li>
</ul>
<h2 dir="auto">Problem Description</h2>

<p dir="auto">On occasion clicking the SelectField will result in the label text disappearing and the dropdown menu not displaying. Clicking the SelectField again will cause the label text to reappear and clicking again brings up the dropdown menu as expected. The dropdown seems to briefly load before disappearing.</p>
<p dir="auto">I'm encountering this issue on both my own app and the <a href="http://www.material-ui.com/#/components/select-field" rel="nofollow">material-ui examples</a> for the SelectField component. I've attached a gif of the bug on the material-ui examples.</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/5589795/15032719/c68e541c-1218-11e6-89e6-a7a2c13fa0dd.gif"><img src="https://cloud.githubusercontent.com/assets/5589795/15032719/c68e541c-1218-11e6-89e6-a7a2c13fa0dd.gif" alt="select field bug" data-animated-image="" style="max-width: 100%;"></a></p>
<h2 dir="auto">Versions</h2>

<ul dir="auto">
<li>Material-UI: 0.14.4</li>
<li>React: 0.14.8</li>
<li>Browser: Chrome 50.0.2661.94 (64-bit) and Safari 9.1</li>
</ul>