我正在尝试构建一个只接受数字作为输入的输入字段。用于解释我的问题的最小组件定义如下
type Props = {};
export default class App extends Component<Props> {
constructor(props) {
super(props);
this.state = {
text: 'PlaceHolder'
}
}
sanitizeInput(input) {
let sanitizedInput = input.replace(/[^0-9]/g, '');
this.setState({text: sanitizedInput});
}
render() {
console.log("In render - ", this.state.text);
return (
<View style={{flex: 1, justifyContent: 'center'}}>
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.sanitizeInput(text)}
value={this.state.text}
/>
</View>
);
}
}
但是,当我执行它时,我没有得到理想的结果。似乎TextInput不尊重传递给它的值prop。 console.log清楚地显示了要在TextInput
中显示的所需值,但我无法在设备的TextInput中正确获取该值。
描述我的问题的视频是posted here