以下代碼示例適用於text
輸入類型,但允許在使用number
輸入類型時輸入類似012
或0012
的輸入。反應號碼輸入允許輸入如012
console.log
行始終運行並顯示正確的值,並且使用React Developer Tools進行檢查時,App狀態也是正確的。只是受控輸入沒有被「控制」。
爲什麼會發生這種情況,以及在React中使用數字輸入的推薦方式是什麼?
class App extends Component {
constructor() {
super()
this.state = {
value: '',
}
}
handleChange = e => {
const value = e.target.value
const num = parseInt(value, 10)
console.log(num)
this.setState({ value: isNaN(num) ? '' : num })
}
render() {
return (
<div className="App">
<input type="number" value={this.state.value} onChange={this.handleChange} />
</div>
)
}
}
'0012'是一個數字。 –
不是後parseInt(....,10) – zsero
我認爲它的工作,因爲你期待,檢查這[** fiddle **](https://jsfiddle.net/mayankshukla5031/08ecc97d/) –