Potrzebuję TextInput
komponentu React Native , który pozwoli na wprowadzanie tylko znaków numerycznych (0 - 9). Mogę ustawić, keyboardType
do numeric
któ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 OnChangeText
zdarzenia do spojrzenia na wprowadzony tekst. Usuwam z tekstu wszelkie znaki nienumeryczne. Następnie umieść tekst w polu stanu. Następnie zaktualizuj TextInput
poprzez jego Value
wł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ć?