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);
},
我在 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);
},