2

我正在尝试构建一个仅将数字作为输入的输入字段。解释我的问题的最小组件定义如下

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 中正确获取该值。

描述我的问题的视频发布在这里

4

0 回答 0