You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redux Toolkit中useGetCryptosQuery非函数错误排查求助

问题排查与解决

1. 端点名称拼写错误(直接触发报错)

你的API定义代码中,endpoints里的端点名称写成了gerCryptos(漏写了字母t)。RTK Query会根据端点名称自动生成对应的Hook,正确名称应为getCryptos,这样才会生成可用的useGetCryptosQuery Hook。

2. Store缺失RTK Query必需的中间件

使用RTK Query时,必须将其对应中间件添加到Redux Store中,否则请求逻辑无法正常执行,即便Hook修正后也无法获取数据。


修正后的代码

API代码(cryptoApi.js)

import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';

const cryptoApiHeaders = {
  'X-RapidAPI-Key': 'key',
  'X-RapidAPI-Host': 'host'
}

const baseUrl =  'https://coinranking1.p.rapidapi.com';

const createRequest = (url) => ({ url, headers: cryptoApiHeaders});

export const cryptoApi = createApi({
  reducerPath: 'cryptoApi',
  baseQuery: fetchBaseQuery({ baseUrl }),
  endpoints: (builder) => ({
    // 修正拼写错误:gerCryptos → getCryptos
    getCryptos: builder.query({
      query: () => createRequest('/coins')
    })
  })
});

export const {
  useGetCryptosQuery,
} = cryptoApi;

Store代码(store.js)

import { configureStore } from '@reduxjs/toolkit';
import { cryptoApi } from '../services/cryptoApi';

export default configureStore({
  reducer: {
    [cryptoApi.reducerPath]: cryptoApi.reducer,
  },
  // 添加RTK Query中间件
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware().concat(cryptoApi.middleware),
});

内容的提问来源于stack exchange,提问作者Kariko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:05:22