title: Improve poor progress bar performance
body: <p>I am trying to pass progress state to other progress bar by using the MobX store.</p>
  
  <p>There are two progress bars. One of them should be changing independently in a short period(about 2secs). I used <code>setTimeOut</code> to increase the current progress and it worked well. Then I tried to save the current progress value into the MobX store to pass to another component. After this, the performance of the progress bar was degraded.</p>
  
  <pre><code>render() {
  ...
  if (tradingProgress.progress &gt; 100) {
      this.setState(prevState =&gt; ({
          tradingProgress: {
              ...prevState.tradingProgress,
              progress: 100,
              },
      }));
  } else if (tradingProgress.isTrading) {
      setTimeout(() =&gt; {
          this.setState(prevState =&gt; ({
              tradingProgress: {
                  ...prevState.tradingProgress,
                  progress: prevState.tradingProgress.progress + 5,
              },
          }));
      }, 100);
  }
  
  ...
  // save current progress to mobx store. 
  // convertProgress, setConvertProgress are in my mobx store.
  if (tradingProgress.progress !== convertProgress &amp;&amp; tradingProgress.isTrading) {
       setConvertProgress(tradingProgress.progress); // in mobx store: this.convertProgress = currentProgress
  }
  
  
  </code></pre>
  
  <p>I think using the MobX store frequently is the bottleneck, and I didn't use that store value in other components.</p>
  
  <p>Thanks for spending your golden time for me.</p>