ฉันจำเป็นต้องมีTextInput
องค์ประกอบReact Native ที่อนุญาตให้ป้อนเฉพาะอักขระตัวเลข (0 - 9) เท่านั้น ฉันสามารถตั้งค่าkeyboardType
เพื่อnumeric
ที่เกือบจะได้รับฉันมีสำหรับการป้อนข้อมูลยกเว้นสำหรับรอบระยะเวลา (.) อย่างไรก็ตามสิ่งนี้ไม่สามารถหยุดการวางอักขระที่ไม่ใช่ตัวเลขลงในฟิลด์ได้
สิ่งที่ฉันคิดขึ้นมาคือการใช้OnChangeText
เหตุการณ์เพื่อดูข้อความที่ป้อน ฉันลบอักขระที่ไม่ใช่ตัวเลขออกจากข้อความ จากนั้นใส่ข้อความในฟิลด์สถานะ จากนั้นปรับปรุงTextInput
ผ่านมันของValue
สถานที่ให้บริการ ข้อมูลโค้ดด้านล่าง
<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})
}
ดูเหมือนจะใช้งานได้ แต่ดูเหมือนว่าเป็นการแฮ็ก มีวิธีอื่นในการทำเช่นนี้หรือไม่?