Potrzebuję TextInputkomponentu React Native , który pozwoli na wprowadzanie tylko znaków numerycznych (0 - 9). Mogę ustawić, keyboardTypedo numericktórego prawie mnie tam doprowadza, z wyjątkiem kropki (.). Jednak to nic nie powstrzymuje wklejania znaków nienumerycznych do pola.
To, co do tej pory wymyśliłem, to użycie OnChangeTextzdarzenia do spojrzenia na wprowadzony tekst. Usuwam z tekstu wszelkie znaki nienumeryczne. Następnie umieść tekst w polu stanu. Następnie zaktualizuj TextInputpoprzez jego Valuewłaściwość. Fragment kodu poniżej.
<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})
}
Wydaje się, że to działa, ale wygląda na włamanie. Czy jest inny sposób, aby to zrobić?