嵌套的TextInput组件不允许调用其他组件的onPress函数.只有当文本输入没有聚焦时,onPress才能正常工作.
React本机版本:0.66.3
这是我的密码
export const Component = (props): JSX.Element {
const { searchText, onChangeSearchText, onClearSearchText } = props
const [searchViewFocused, setSearchViewFocused] = useState<boolean>(false)
const searchIcon = searchViewFocused ? "searchActive" : "searchInactive"
const cancelIcon = searchViewFocused ? "cancelActive" : "cancelInactive"
return (
<View style={styles.searchBoxContainer}>
<View style={[styles.searchBox, searchViewFocused && styles.searchBarActive]}>
<Icon styles={styles.searchIcon} icon={searchIcon} />
<TextInput
style={styles.searchInput}
onChangeText={onChangeSearchText}
value={searchText}
onFocus={() => setSearchViewFocused(true)}
onBlur={() => setSearchViewFocused(false)}
autoCompleteType={"off"}
numberOfLines={1}
/>
{searchText !== "" && (
<Pressable style={styles.clearIcon} onPress={onClearSearchText}>
<Icon icon={cancelIcon} />
</Pressable>
)}
</View>
</View>
)
})
附件是的图像
预期.
VS公司
问题
当在聚焦状态下按下十字图标时,文本输入是非聚焦的,而我试图实现的是搜索文本被清除&;投入仍然集中.
注意:输入未聚焦时,onPress工作正常
非常感谢您的帮助.谢谢
PS:try touch 不透明度(&T);此外,我还try 将组件包装在ScrollView中,以使用KeyboardShoulderPersistTaps='handled',如其中一个SO答案中所述,但没有成功.