redux createApi查询完成时的调度操作

qrjkbowd  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(108)

我有以下代码:

export const documentApi = createApi({
  reducerPath: 'documentApi',
  baseQuery: fetchBaseQuery({
    baseUrl: setBaseUrl('/documents'),
    prepareHeaders: async (headers) => setHeaders(headers),
  }),
  endpoints: (builder) => ({
    getDocuments: builder.query<AssignNormalizedData, TGetDocumentsProps>({
      query: (params) => ({
        url: '',
        params,
      }),
    }),
  }),
});

字符串
我想用从getDocuments的服务器得到的响应分派一个操作。
我可以直接在createApi示波器中执行此操作吗?

4szc88ey

4szc88ey1#

这就是端点的onQueryStarted函数的用途。一旦查询启动,您就可以访问查询生命周期API和await要完成的查询并分派其他操作。
示例如下:

export const documentApi = createApi({
  reducerPath: 'documentApi',
  baseQuery: fetchBaseQuery({
    baseUrl: setBaseUrl('/documents'),
    prepareHeaders: async (headers) => setHeaders(headers),
  }),
  endpoints: (builder) => ({
    getDocuments: builder.query<AssignNormalizedData, TGetDocumentsProps>({
      query: (params) => ({
        url: '',
        params,
      }),
      onQueryStarted: async (arg, api) => {
        const { dispatch, queryFulfilled } = api;

        const { data } = await queryFulfilled;
        dispatch(someAdditionalAction(data));
      },
    }),
  }),
});

字符串

相关问题