title: React input type number onChange is slow
body: <p>I'd like to set an input that users can type only numbers and one dot(ex number.number(8 digits)) using regex.</p>
  
  <pre><code>// component A
  
  &lt;Input
      name="password"
      value={this.props.password}
      onChange={this.props.onChange}
  /&gt;
  </code></pre>
  
  <p>.</p>
  
  <pre><code>// component B
  
  state = { password : '' }
  
  handleChange = (e) =&gt; {
     const value = e.target.value;
     const regexAllowOneDot = /\d+(\.?\d{0,8})/;
  
     if(regexAllowOneDot.exec(value) !== null) {
          this.setState({
              password: regexAllowOneDot.exec(value)[0]
          })
      }else {
          this.setState({
              password: ''
          })
     }
  }
  
  
  &lt;ComponentA
     password={this.state.password}
     onChange={this.handleChange}
  /&gt;
  </code></pre>
  
  <p>.</p>
  
  <p>It works when type of the input is "text" but it doesn't work when the type is "number".</p>
  
  <p>so, When the type is "number", I get these issues below(However, theses are totally solved when the type is "text")</p>
  
  <ol>
  <li><p>When I check the developer tool from Chrome, the value of the input does not change (but e.target.value works)</p></li>
  <li><p>Also, when I check through <code>console.log(regexAllowOneDot.exec(value)[0])</code>, It says null even though the value still has the one digit(length, like 1 or 2 or...)</p></li>
  </ol>
  
  <p>I wonder why and how I can fix this or if you have a better solution.</p>