如何让React Native Paper的Searchbar图标具备按钮功能?
解决Searchbar图标点击唤起键盘的问题
要实现点击Searchbar图标和点击输入框本身一样唤起键盘,你可以通过给Searchbar添加引用(ref),然后在图标的点击事件里手动触发输入框的聚焦方法来实现,具体步骤如下:
- 首先引入
useRef钩子(函数组件场景),创建一个用于关联Searchbar的ref - 给Searchbar组件绑定这个ref
- 自定义图标的点击事件,调用ref的
focus()方法
修改后的代码示例:
import { useRef } from 'react'; import { View } from 'react-native'; import { Searchbar } from 'react-native-paper'; // 假设你使用的是react-native-paper的Searchbar // 组件内部逻辑 const searchRef = useRef(null); return ( <View style={{zIndex: 99}}> <Searchbar ref={searchRef} style={{borderRadius: 100, height: 35, backgroundColor: '#FAFAFA', elevation: 0, width: 0, top: 185, left: 180}} placeholder='Search post ' placeholderTextColor='#E0E0E0' iconColor="grey" fontSize={5} // 自定义左侧搜索图标的点击事件 leftIcon={() => ( <Searchbar.Icon name="magnify" color="grey" onPress={() => searchRef.current?.focus()} /> )} /> </View> );
如果你的Searchbar不是基于react-native-paper封装的,核心逻辑依然通用:通过ref获取输入框实例,在图标点击时调用聚焦方法即可,比如原生TextInput封装的搜索栏,同样可以用ref调用focus()实现相同效果。
内容的提问来源于stack exchange,提问作者Samuel
相关产品推荐
相关产品推荐

