我刚开始打字,我想这是一个常见的问题,找不到任何有用的东西

这是我的API切片

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

export const apiSlice = createApi({
  reducerPath: "apiSlice",
  prepareHeaders: (headers) => {
    headers.set("Content-Type", "application/json");
    headers.set("Access-Control-Allow-Origin", "*");
    return headers;
  },
  baseQuery: fetchBaseQuery({
     baseUrl: "https://api.npoint.io",
  }),
  endpoints: (builder) => ({
    getWines: builder.query({
      query: () => `/0d9ec2e70191f0835e9a`,
    }),
  }),
});

export const { useGetDataQuery } = apiSlice; 

PrepareHeaders Error个 对象文本只能指定已知的属性,并且类型‘CreateApiOptions<BaseQueryFn<字符串|FetchArgs,UNKNOWN,FetchBaseQueryError,{},FetchBaseQueryMeta>,{getWines:QueryDefinition<any,BaseQueryFn<...>,Never,Any,"apiSlice">;},"apiSlice",Never>’.ts(2353)中不存在‘prepreareHeaders’

UserGetDataQuery Error个 类型‘Api<BaseQueryFn<字符串|FetchArgs,UNKNOWN,FetchBaseQueryError,{},FetchBaseQueryMeta>,EndpointDefinitions,"apiSlice",Never,Unique Symbol|Unique Symbol>上不存在属性’useDataQuery‘.ts(2339)

推荐答案

prepareHeaderfetchBaseQuery函数API的一部分,而不是createApi.将prepareHeaders属性移动到fetchBaseQuery.

例如:

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

export const apiSlice = createApi({
  reducerPath: "apiSlice",
  baseQuery: fetchBaseQuery({
    baseUrl: "https://api.npoint.io",
    prepareHeaders: (headers) => {
      headers.set("Content-Type", "application/json");
      headers.set("Access-Control-Allow-Origin", "*");
      return headers;
    },
  }),
  endpoints: (builder) => ({
    getWines: builder.query<ReturnValueTypeHere, void>({
      query: () => `/0d9ec2e70191f0835e9a`,
    }),
  }),
});

没有声明任何getData终结点,因此不会生成任何useGetDataQuery挂钩.给出上述代码,将只生成useGetWines-X个钩子,例如useGetWinesQuery个.

export const { useGetWinesQuery } = apiSlice; 

Typescript相关问答推荐

webpack错误:模块找不到.当使用我的其他库时,

在动态对话框中使用STEP组件实现布线

部分类型化非 struct 化对象参数

如何在LucideAngular 添加自定义图标以及如何使用它们

如何使默认导出与CommonJS兼容

通过按键数组拾取对象的关键点

在实现自定义主题后,Angular 不会更新视图

Select 下拉菜单的占位符不起作用

笛卡尔产品类型

防止重复使用 Select 器重新渲染

APP_INITIALIZER在继续到其他Provider 之前未解析promise

在打字脚本中对可迭代对象进行可变压缩

TypeScrip-根据一个参数值验证另一个参数值

使用Type脚本更新对象属性

如何在Vue动态类的上下文中解释错误TS2345?

为什么TS条件返回要求不明确的强制转换而不是精确的强制转换?

为什么类方法参数可以比接口参数窄

在ts中获取级联子K类型?

如何从联合类型推断函数参数?

如何从 Select 元素中删除选项