单击清除文本
Clear Text on single tap
当我第一次点击十字图标时,它会降低键盘,第二次点击时,它会清除搜索栏中的文本。我想在第一次点击时清除文本我也尝试过其他解决方案,但没有任何效果。如何在第一次点击时清除文本?
return (
<View style={styles.FlatList_header}>
<View style={styles.header_style}>
<Input
autoFocus={true}
style={styles.textInputStyle}
onChangeText={text => this.search(text)}
value={this.state.text}
/>
<Icon
name="close"
style={styles.crossIcon}
onPress={() => {
this.search('');
}}
/>
</View>
</View>
);
};
render() {
const {data, onPress} = this.props;
return (
<>
<SafeAreaView
style={{flex: 1, backgroundColor: customColor.defaultGreen}}>
<View style={styles.MainContainer}>
<FlatList
data={data}
renderItem={({item}) => (
<View
style={{
flex: 1,
borderWidth: 0.5,
borderColor: customColor.textLightGrey,
}}>
<Text
style={styles.FlatList_Item}
onPress={() => onPress(item)}>
{item?.taskName}
</Text>
</View>
)}
enableEmptySections={true}
ListHeaderComponent={this.Render_FlatList_Sticky_header}
keyExtractor={item => item.id}
/>
</View>
</SafeAreaView>
</>
);
}
}
在你的 onPress 函数中执行此操作。
onPress={() => {
Keyboard.dismiss()
this.search('');
this.setState(text: '')
}}
此外,您在 onChangeText
时没有设置状态,请在 onChangeText
中执行此操作
onChangeText={(text)=>this.setState({text})}
编辑:将其添加到您的 FlatList
keyboardShouldPersistTaps='always'
为 ex 创建一个新状态:按下。
如果用户第一次触摸设置为真。并在视图中插入 if 条件。
<TouchableOpacity onPress={() => this.setState({ pressed: !this.state.pressed})}>
{this.state.pressed ? (
<Icon
name="close"
style={styles.crossIcon}
onPress={() => {
this.search('');
}}
/>
) : (
<Text>Clear</Text>
)}
</TouchableOpacity>
当我第一次点击十字图标时,它会降低键盘,第二次点击时,它会清除搜索栏中的文本。我想在第一次点击时清除文本我也尝试过其他解决方案,但没有任何效果。如何在第一次点击时清除文本?
return (
<View style={styles.FlatList_header}>
<View style={styles.header_style}>
<Input
autoFocus={true}
style={styles.textInputStyle}
onChangeText={text => this.search(text)}
value={this.state.text}
/>
<Icon
name="close"
style={styles.crossIcon}
onPress={() => {
this.search('');
}}
/>
</View>
</View>
);
};
render() {
const {data, onPress} = this.props;
return (
<>
<SafeAreaView
style={{flex: 1, backgroundColor: customColor.defaultGreen}}>
<View style={styles.MainContainer}>
<FlatList
data={data}
renderItem={({item}) => (
<View
style={{
flex: 1,
borderWidth: 0.5,
borderColor: customColor.textLightGrey,
}}>
<Text
style={styles.FlatList_Item}
onPress={() => onPress(item)}>
{item?.taskName}
</Text>
</View>
)}
enableEmptySections={true}
ListHeaderComponent={this.Render_FlatList_Sticky_header}
keyExtractor={item => item.id}
/>
</View>
</SafeAreaView>
</>
);
}
}
在你的 onPress 函数中执行此操作。
onPress={() => {
Keyboard.dismiss()
this.search('');
this.setState(text: '')
}}
此外,您在 onChangeText
时没有设置状态,请在 onChangeText
onChangeText={(text)=>this.setState({text})}
编辑:将其添加到您的 FlatList
keyboardShouldPersistTaps='always'
为 ex 创建一个新状态:按下。 如果用户第一次触摸设置为真。并在视图中插入 if 条件。
<TouchableOpacity onPress={() => this.setState({ pressed: !this.state.pressed})}>
{this.state.pressed ? (
<Icon
name="close"
style={styles.crossIcon}
onPress={() => {
this.search('');
}}
/>
) : (
<Text>Clear</Text>
)}
</TouchableOpacity>