我在我的react应用程序中使用了react-query包。我有一个模式,它使用useQuery从带有axios的api中获取数据。除GET search/params终结点外,其他多个终结点均可工作。Axios返回预期的数据,但是一旦在useQuery中完成加载,就会返回undefined。
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: false,searchResults变得未定义,我看到这个错误TypeError: config.queryFn.apply is not a function。如果我登录api.clubhouse.search (它包含axios调用),我可以看到正确的数据。此模式也适用于其他api调用……
发布于 2021-08-05 15:44:18
我猜这可能是你的问题:
api.clubhouse.search({ params: { query: query } })我猜这里的search函数返回一个promise,但是您需要向useQuery传递一个返回promise而不是promise本身的函数。因此,也许可以像这样进行更改:
const searchResults = useQuery(
api.clubhouse.searchCacheKey(query),
() => api.clubhouse.search({ params: { query: query } })
);https://stackoverflow.com/questions/68669408
复制相似问题