我正在尝试构建一个仅将数字作为输入的输入字段。解释我的问题的最小组件定义如下
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 不尊重传递给它的 value 道具。console.log 清楚地显示了要显示的所需值TextInput
,但我无法在设备的 TextInput 中正确获取该值。
描述我的问题的视频发布在这里