React Native 明文多个 TextInput 框

React Native clear text multiple TextInput boxes

我在 Facebook React Native 页面上找到了示例代码,该页面显示了如何使用 setNativeProp 来清除单击时的文本,但我看不到如何使用多个文本框来执行此操作。这是代码:

var App = React.createClass({
  clearText() {
    this._textInput.setNativeProps({text: ''});
  },

  render() {
    return (
      <View style={styles.container}>
        <TextInput ref={component => this._textInput = component}
               style={styles.textInput} />
        <TouchableOpacity onPress={this.clearText}>
          <Text>Clear text</Text>
        </TouchableOpacity>
      </View>
    );
  }
});

ref 似乎已固定在函数中,因此将始终指向同一个 TextInput 框。我怎样才能改变函数来定位我指定的任何 TextInput 框?

这应该有效。请注意,TextInput 上的引用必须是您从 clearText 函数中调用的引用。

var App = React.createClass({
  clearText(fieldName) {
    this.refs[fieldName].setNativeProps({text: ''});
  },

  render() {
    return (
      <View style={styles.container}>
        <TextInput ref={'textInput1'} style={styles.textInput} />
        <TouchableOpacity onPress={() => this.clearText('textInput1')}>
          <Text>Clear text</Text>
        </TouchableOpacity>
        <TextInput ref={'textInput2'} style={styles.textInput} />
        <TouchableOpacity onPress={() => this.clearText('textInput2')}>
          <Text>Clear text</Text>
        </TouchableOpacity>
      </View>
    );
  }
});

更新了我的答案以清除不同的字段。

您也可以使用类似这样的方法来清除 TextInput 的文本。

clearText(fieldName) {
  this.refs[fieldName].clear(0);
},