在反应本机文本输入中获取NaN

时间:2019-08-26 08:12:30

标签: javascript reactjs react-native expo

我正在尝试将一个文本输入的值打包为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()}
      />

2 个答案:

答案 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 })} />