以下代码示例适用于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/) –