React Native中useInfiniteQuery在react-query 5.66.3+报getCurrentResult错误
React Native中useInfiniteQuery v5.66.3抛出"observer.getCurrentResult is not a function"崩溃问题
在React Native(Android和iOS)环境使用useInfiniteQuery时,应用直接崩溃并抛出错误:
observer.getCurrentResult is not a function (it is undefined)
该问题仅存在于React Native平台,Web环境无异常。useInfiniteQuery在React Query v5.64.0版本可正常工作,但升级至v5.66.3后失效,推测是版本更新引入的回归问题,影响了React Native下的实现逻辑。
相关代码示例
Home.js
const InfiniteQuery = useInfiniteQuery({ queryKey: 'QueryKey', queryFn: async ({pageParam = 0}) => { const response = await new Promise(resolve => resolve({ data: [], nextCursor: pageParam + 1, }) ); return { pages: [{data: response.data}], pageParams: [pageParam], }; }, initialPageParam: 0, getNextPageParam: (lastPage) => { return lastPage.nextCursor || null }, });
App.tsx
const queryClient = new QueryClient({ defaultOptions: { queries: { retry: 2, staleTime: 5 * 60 * 1000, gcTime: 10 * 60 * 1000, suspense: false, useErrorBoundary: false, }, }, }); <QueryClientProvider client={queryClient}> <Home /> </QueryClientProvider>
环境版本信息
- 平台:React Native(Android、iOS)
- React Query版本:5.66.3(问题版本)、5.64.0(正常版本)
- React Native版本:0.76.7
- React版本:18.3.1
解决方案与建议
临时修复方案
回滚至稳定版本:立即降级React Query到v5.64.0,确保业务正常运行:
npm install @tanstack/react-query@5.64.0 # 或使用yarn yarn add @tanstack/react-query@5.64.0排查依赖冲突:检查项目中是否存在嵌套版本的React Query,可通过以下命令查看依赖树:
npm ls @tanstack/react-query # yarn用户执行 yarn list @tanstack/react-query若存在冲突,可通过
resolutions字段强制统一版本。验证导入正确性:确认React Query的导入路径正确,React Native环境下无需额外适配模块,确保导入的是
@tanstack/react-query而非Web专属分支。
长期处理建议
- 前往React Query官方仓库查看issue列表,确认是否已有相同问题的反馈,若没有则提交详细的复现信息(环境版本、代码片段),帮助官方修复回归问题。
- 后续版本升级前,先在测试环境验证核心分页功能,避免直接影响生产环境。
内容的提问来源于stack exchange,提问作者Johanan307
相关产品推荐
相关产品推荐

