RTK查询使用transformResponse映射道具的正确方法



我正在将调度器组件与我通过RTK查询api调用接收的数据连接起来。为了使调度器工作,我必须在组件中可用状态之前,将道具名称调整为调度器使用的名称(否则,当我在React组件中尝试时,它不会加载)。在RTK查询文档(https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#customizing-query-responses-with-transformresponse)中没有一个明确的例子,但似乎应该是可能的。当我实现它时,查询得到了满足,但返回为一个空对象,或者一个具有单个空对象的数组,这取决于我如何尝试构造它。

getUserScheduleVisits: builder.query({
query: userId => `/visitapi/visits/users/${userId}`,
providesTags: ['Visit', 'User'],
transformResponse: (response) => {
return {
data: [{
id: response._id,
startDate: response.visitStart,
endDate: response.visitEnd,
title: response?.client?.fullName
}]
}
},
}),

当我在没有转换响应的情况下运行查询时,数据如预期的那样通过,但是我试图实现的Scheduler组件仍然无法使用。我还在学习RTK查询的复杂性,所以我确信我是如何尝试使用transformResponse的,我只是不确定如何正确地接近它。

如果执行const result = useMyQuery(),则最终为result.data.data

你可能是故意的吗?

getUserScheduleVisits: builder.query({
query: userId => `/visitapi/visits/users/${userId}`,
providesTags: ['Visit', 'User'],
transformResponse: (response) => {
return [{
id: response._id,
startDate: response.visitStart,
endDate: response.visitEnd,
title: response?.client?.fullName
}]
},
}),

相关内容