首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-Query,useQuery仅在加载完成后返回undefined

React-Query,useQuery仅在加载完成后返回undefined
EN

Stack Overflow用户
提问于 2021-08-05 15:25:03
回答 1查看 1.1K关注 0票数 1

我在我的react应用程序中使用了react-query包。我有一个模式,它使用useQuery从带有axios的api中获取数据。除GET search/params终结点外,其他多个终结点均可工作。Axios返回预期的数据,但是一旦在useQuery中完成加载,就会返回undefined。

代码语言:javascript
复制
import React from "react";
import { useQuery } from "react-query";
import { api } from "../../../api";

export const useSearch = (query) => {
  const searchResults = useQuery(
    api.clubhouse.searchCacheKey(query),
    api.clubhouse.search({ params: { query: query } })
  );

  let searchData = [];

  let isLoading = searchResults.isLoading;

  if (!isLoading) {
    searchData = searchResults.data;
  }

  return { searchData, isLoading };
};

一旦isLoading: falsesearchResults变得未定义,我看到这个错误TypeError: config.queryFn.apply is not a function。如果我登录api.clubhouse.search (它包含axios调用),我可以看到正确的数据。此模式也适用于其他api调用……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-05 15:44:18

我猜这可能是你的问题:

代码语言:javascript
复制
api.clubhouse.search({ params: { query: query } })

我猜这里的search函数返回一个promise,但是您需要向useQuery传递一个返回promise而不是promise本身的函数。因此,也许可以像这样进行更改:

代码语言:javascript
复制
const searchResults = useQuery(
  api.clubhouse.searchCacheKey(query),
  () => api.clubhouse.search({ params: { query: query } })
);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68669408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档