使用React Native Elements SearchBar时onChangeText类型不匹配报错如何解决
问题原因
该报错是react-native-elements旧版本的类型定义缺陷导致,和你写的业务逻辑无关:旧版本的类型声明文件中,SearchBar组件的onChangeText属性类型被错误混入了无参函数类型() => any,和官方文档标注的(text: string) => void类型做了交叉校验,所以你定义的接收字符串参数的回调函数无法通过类型匹配。
解决方案
- 方案1:升级依赖版本
把react-native-elements升级到v3.0及以上正式版本,该版本已经修复了SearchBar的类型定义错误,升级后原有代码不需要做任何修改即可正常通过类型校验。 - 方案2:临时兼容(暂时无法升级版本时使用)
调整回调函数定义,兼容无参的类型要求,同时不影响正常运行逻辑:
也可以直接使用类型断言跳过校验:// 将参数设置为可选,无参数传入时默认赋值为空字符串 const handleSearchChange = (text?: string) : void => setSearchQuery(text ?? "");onChangeText={handleSearchChange as unknown as (text: string) => void}
内容的提问来源于stack exchange,提问作者softshipper
相关产品推荐
相关产品推荐

