小编Ola*_*ari的帖子

是否可以使用 Redux Toolkit 中的 useLazyQueryHook 通过同一端点进行并发查询

问题:当向同一端点发出多个请求时,useLazyQueryHook 将仅返回状态设置为“已完成”的最新查询和响应数据的响应,而之前发出的其他请求则停留在“待处理”状态且没有响应数据。

所需的功能:惰性查询挂钩不会覆盖先前的返回(如果是覆盖),而是返回每个查询的数据,这些数据可以在 useEffect 挂钩 f.ex 中访问。使用 RTK 时,这可能不是该用例的正确方法吗?

我在 createAPI 中有以下端点...

  getLoggerCheck: builder.query<any, any>({
        query: ({ loggerId }) => ({
            url: '/scan/check',
            params: {
                logger: loggerId,
            }
        }),
        transformResponse(data: any) {
            console.log(data);   // <---- Correct data for each request is logged out here
            return data;
        }
    })
Run Code Online (Sandbox Code Playgroud)

...但是当像这样使用生成的 useLazyGetLoggerCheckQuery 挂钩并每秒发出大约 5 个请求时,runLoggerChecks({loggerId: XXXXX})仅返回最近的查询,并返回数据和状态“已完成”。

const [runLoggerCheck, loggerCheckResponse] = useLazyGetLoggerCheckQuery();

useEffect(() => {
    console.log(loggerCheckResponse)
}, [loggerCheckResponse]);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

redux react-redux react-hooks redux-toolkit

7
推荐指数
0
解决办法
756
查看次数

标签 统计

react-hooks ×1

react-redux ×1

redux ×1

redux-toolkit ×1