Tôi cần có một TextInputthà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để numericmà 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 OnChangeTextsự 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 TextInputcủ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?