Preciso ter um TextInput
componente React Native que só permitirá a inserção de caracteres numéricos (0 - 9). Posso definir o keyboardType
para o numeric
qual quase me leva lá para entrada, exceto para o ponto (.). No entanto, isso não impede a colagem de caracteres não numéricos no campo.
O que descobri até agora é usar o OnChangeText
evento para ver o texto inserido. Eu removo todos os caracteres não numéricos do texto. Em seguida, coloque o texto em um campo de estado. Em seguida, atualize o TextInput
por meio de sua Value
propriedade. Snippet de código abaixo.
<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})
}
Isso parece funcionar, mas parece um hack. Há outra maneira de fazer isso?