我正在尝试将一个文本输入的值打包为maxLength为2的另一文本输入,当我输入数字并清除它时,我得到的是NaN,它不会恢复为原始状态0。 但是,我还希望用户能够完全清除文本输入,从而使文本输入仅保留占位符
下面是我的代码
this.state = {
total: 0,
}
onChangeTotal(number) {
const total = parseInt(number);
this.setState({ total });
}
<InputField
value={this.state.total.toString()}
/>
<InputField
children={'Number of shoes'}
iconType={'ios-basket'}
placeholder={'Enter number of shoes'}
keyboardType={'phone-pad'}
maxLength={2}
onChangeText={this.onChangeTotal}
value={this.state.total.toString()}
/>
答案 0 :(得分:1)
检查数字的长度值以查看文本是否存在。
onChangeTotal(number) {
const total = parseInt(number);
if(number.length === 0) {
this.setState({ total: '' });
} else {
this.setState({ total });
}
}
答案 1 :(得分:0)
<input value={this.state.total} type="number" min="0" max="99" onChange={(e) => this.setState({ total: e.target.value })} />