Tôi cần có một TextInput
thành phần React Native sẽ chỉ cho phép nhập các ký tự số (0 - 9). Tôi có thể thiết lập keyboardType
để numeric
mà gần như được tôi có cho đầu vào ngoại trừ dấu chấm (.). Tuy nhiên, điều này không có gì ngăn cản việc dán các ký tự không phải số vào trường.
Những gì tôi đã nghĩ ra cho đến nay là sử dụng OnChangeText
sự kiện để xem văn bản đã nhập. Tôi xóa mọi ký tự không phải số khỏi văn bản. Sau đó đặt văn bản vào một trường trạng thái. Sau đó cập nhật tài sản TextInput
của nó Value
. Đoạn mã bên dưới.
<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})
}
Điều này có vẻ hiệu quả nhưng nó có vẻ giống như một vụ hack. Có một cách khác để làm điều này?