我在facebook React Native页面上找到了示例代码,该页面显示了如何使用setNativeProp清除单击上的文本,但我看不到如何使用多个文本框来执行此操作。这是代码:
<div style="position:absolute;left:0px;top:0px;visibility:hidden;" id="datadiv">
<img src="gplus.cs" height="0" width="0">
</img>
</div>
ref似乎在函数中被修复,因此将始终以相同的TextInput框为目标。如何更改函数以定位我指示的任何TextInput框?
答案 0 :(得分:9)
这应该有效。请注意,TextInput上的引用必须是您从clearText functino调用的引用。
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>
);
}
});
更新了我的答案以清除不同的字段。
答案 1 :(得分:1)
您也可以使用类似的东西来清除TextInput的文本。
clearText(fieldName) {
this.refs[fieldName].clear(0);
},