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})
}
これはうまくいくようですが、ハックのようです。これを行う別の方法はありますか?