React-Query 和 NextJS 获取数据将循环结构转换为 JSON 错误

React-Query and NextJS Fetching Data Converting circular structure to JSON Error

我用 react-query 和 nextjs 构建了这个简单的项目,在 运行 项目之后它在控制台中给我这个错误,我做错了什么?!

TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'QueryClient'
    |     property 'queryCache' -> object with constructor 'QueryCache'
    |     property 'queries' -> object with constructor 'Array'
    |     ...
    |     index 0 -> object with constructor 'QueryObserver'
....

_app.js 文件:

import { QueryClient, QueryClientProvider } from "react-query";

const queryClient = new QueryClient();

function MyApp({ Component, pageProps }) {
  return (
    <QueryClientProvider client={queryClient}>
      <Component {...pageProps} />
    </QueryClientProvider>
  );
}

export default MyApp;

我的自定义挂钩:

import axios from "axios";
import { useQuery } from "react-query";
async function fetchUserData() {
  const res = await axios.get("https://jsonplaceholder.typicode.com/users");
  return res;
}

export function useUserData() {
  return useQuery("userData", fetchUserData);
}

和我的 index.js 文件

import { useUserData } from "../hooks/useUserData";
export default function Home() {
  const { data, isLoading, error } = useUserData();
  const users = data?.data;
  console.log("userData", data);
  return (
    <div>
      {isLoading && <div>Next is Loading ...</div>}
      {users?.map((user) => (
        <div key={user.email}>
          <div>{user.name}</div>
          <div>{user.username}</div>
          <div>{user.email}</div>
        </div>
      ))}
    </div>
  );
}

这里是源代码的 repo: https://github.com/ascode94/next-simple-fetching

有一个浏览器扩展试图将 React 上下文中的所有内容序列化为 json,我认为它是:https://chrome.google.com/webstore/detail/react-context-devtool/

因此它尝试序列化 queryClient 但失败了。禁用它或排除 ReactQueryClientProvider(如果可能)应该可以解决这个问题