首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: Object(...)不是带有react-query的函数

TypeError: Object(...)不是带有react-query的函数
EN

Stack Overflow用户
提问于 2021-01-19 06:39:15
回答 1查看 930关注 0票数 1

我以前读过这个问题,其中许多似乎是一个引入问题,但我不确定在我的情况下。我正在学习关于react query的教程,我仔细检查了源代码,编写教程的人没有这个问题。

引发错误的代码:

代码语言:javascript
复制
import React, { useState } from "react";
import { usePaginatedQuery } from "react-query";
import Planet from "./Planet";

const fetchPlanets = async (key, page) => {
  const res = await fetch(`http://swapi.dev/api/planets/?page=${page}`);
  return res.json();
};

const Planets = () => {
  const [page, setPage] = useState(1);
  const { resolvedData, latestData, status } = usePaginatedQuery(
    ["planets", page],
    fetchPlanets
  );

  return (
    <div>
      <h2>Planets</h2>

      {status === "loading" && <div>Loading data</div>}

      {status === "error" && <div>Error fetching data</div>}

      {status === "success" && (
        <>
          <button
            onClick={() => setPage((old) => Math.max(old - 1, 1))}
            disabled={page === 1}
          >
            Previous Page
          </button>
          <span>{page}</span>
          <button
            onClick={() =>
              setPage((old) =>
                !latestData || !latestData.next ? old : old + 1
              )
            }
            disabled={!latestData || !latestData.next}
          >
            Next page
          </button>
          <div>
            {resolvedData.results.map((planet) => (
              <Planet key={planet.name} planet={planet} />
            ))}
          </div>
        </>
      )}
    </div>
  );
};

export default Planets;

错误:

代码语言:javascript
复制
TypeError: Object(...) is not a function
Planets
src/components/Planets.jsx:12
   9 | 
  10 | const Planets = () => {
  11 |   const [page, setPage] = useState(1);
> 12 |   const { resolvedData, latestData, status } = usePaginatedQuery(
  13 |     ["planets", page],
  14 |     fetchPlanets
  15 |   );

我在这里做错了什么?为什么会产生这个错误?

控制台给了我一些我不了解的信息

代码语言:javascript
复制
react-refresh-runtime.development.js:315 Uncaught TypeError: Object(...) is not a function
    at Planets (Planets.jsx:12)
    at renderWithHooks (react-dom.development.js:14985)
    at mountIndeterminateComponent (react-dom.development.js:17811)
    at beginWork (react-dom.development.js:19049)
    at HTMLUnknownElement.callCallback (react-dom.development.js:3945)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
    at invokeGuardedCallback (react-dom.development.js:4056)
    at beginWork$1 (react-dom.development.js:23964)
    at performUnitOfWork (react-dom.development.js:22776)
    at workLoopSync (react-dom.development.js:22707)
    at renderRootSync (react-dom.development.js:22670)
    at performSyncWorkOnRoot (react-dom.development.js:22293)
    at react-dom.development.js:11327
    at unstable_runWithPriority (scheduler.development.js:646)
    at runWithPriority$1 (react-dom.development.js:11276)
    at flushSyncCallbackQueueImpl (react-dom.development.js:11322)
    at flushSyncCallbackQueue (react-dom.development.js:11309)
    at flushSync (react-dom.development.js:22467)
    at Object.scheduleRoot (react-dom.development.js:24444)
    at react-refresh-runtime.development.js:284
    at Set.forEach (<anonymous>)
    at Object.performReactRefresh (react-refresh-runtime.development.js:263)
    at RefreshUtils.js:62
EN

回答 1

Stack Overflow用户

发布于 2021-01-24 06:21:19

我认为这仍然是一个重要的问题。usePaginatedQuery已在v3中删除,因此请确保在使用v2时使用它,或者遵循迁移指南:https://react-query.tanstack.com/guides/migrating-to-react-query-3#usepaginatedquery-has-been-deprecated-in-favor-of-the-keeppreviousdata-option

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65783024

复制
相关文章

相似问题

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