TextInput
数字(0〜9)のみを入力できるReactNativeコンポーネントが必要です。ピリオド(。)を除いて、入力のためにほとんどそこに到達するkeyboardType
までnumeric
を設定できます。ただし、これは数値以外の文字をフィールドに貼り付けるのを止めるものではありません。
私がこれまでに思いついたのは、OnChangeText
イベントを使用して入力されたテキストを確認することです。テキストから数字以外の文字を削除します。次に、テキストを状態フィールドに入力します。次に、そのプロパティTextInput
を介して更新しValue
ます。以下のコードスニペット。
<TextInput
style={styles.textInput}
keyboardType = 'numeric'
onChangeText = {(text)=> this.onChanged(text)}
value = {this.state.myNumber}
/>
onTextChanged(text) {
// code to remove non-numeric characters from text
this.setState({myNumber: text})
}
これはうまくいくようですが、ハックのようです。これを行う別の方法はありますか?