跳到主要内容

 

API切片:Redux集成

在内部,createApi会调用Redux Toolkit的createSlice API来生成一个切片reducer和相应的action创建器,这些创建器具有缓存获取的数据的适当逻辑。它还自动生成一个自定义的Redux中间件,该中间件管理订阅计数和缓存生命周期。

生成的切片reducer和中间件都需要添加到你的Redux store设置中的configureStore中,以便正确工作:

src/store.ts
// 文件:src/services/pokemon.ts noEmit
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'

export const pokemonApi = createApi({
baseQuery: fetchBaseQuery({ baseUrl: '/' }),
endpoints: () => ({}),
})

// 文件:src/store.ts
import { configureStore } from '@reduxjs/toolkit'
import { setupListeners } from '@reduxjs/toolkit/query'
import { pokemonApi } from './services/pokemon'

export const store = configureStore({
reducer: {
// 将生成的reducer添加为特定的顶级切片
[pokemonApi.reducerPath]: pokemonApi.reducer,
},
// 添加api中间件启用缓存,失效,轮询,
// 和`rtk-query`的其他有用特性。
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware().concat(pokemonApi.middleware),
})

// 使用提供的默认值配置监听器
setupListeners(store.dispatch)

reducerPath

reducerPath: string

包含提供给createApireducerPath选项。在将reducer函数添加到store时,使用此作为根状态键,以便生成的API逻辑可以正确找到状态。

reducer

reducer: Reducer

一个标准的Redux切片reducer函数,包含更新缓存数据的逻辑。使用你提供的根状态键将此添加到Redux store。

middleware

middleware: Middleware

一个自定义的Redux中间件,包含管理缓存,失效,订阅,轮询等逻辑。在其他中间件之后将此添加到store设置中。