mwl*_*mwl 3 javascript reactjs
我有一个input:
<input type="text" value={this.state.current} onChange={this.handleChange.bind(this)} />
Run Code Online (Sandbox Code Playgroud)
handleChange() 方法:
handleChange(e) {
let val = parseInt(e.target.value);
if (val) {
this.set(val);
}
}
Run Code Online (Sandbox Code Playgroud)
和set()方法(状态的简单设置编号介于1到5之间):
set(val = 1) {
if (val < 1) {
val = 1;
}
if (val > 5) {
val = 5;
}
this.setState({ current: val });
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:当我想更改输入中的值时,我无法从中删除数字。我认为删除号码后立即从状态自动填充。我的代码中的问题出在哪里?
jsFiddle上的示例:https://jsfiddle.net/4sc3p2ny/
当你试图完全删除输入值,e.target.value返回''在这种情况下parseInt(e.target.value)的回报NaN,因为parseInt('')回报率NaN,你需要检查它并设置current为空字符串
handleChange(e) {
let val = parseInt(e.target.value);
if (isNaN(val)) {
this.setState({ current: '' });
} else {
if (val < 1) {
val = 1;
}
if (val) {
this.set(val);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2113 次 |
| 最近记录: |