You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RTK Query中直接获取接口返回的data.result数据?

解决RTK Query返回数据嵌套的问题

使用RTK Query的transformResponse配置项,在接口定义阶段直接将返回的响应数据转换为你需要的result数组,这样调用useGetMoviesQuery后就能直接通过data.map遍历数据。

修改后的API定义代码

export const movieApi = createApi({
    reducerPath: 'movieApi',
    baseQuery: fetchBaseQuery({
        baseUrl: 'https://movie-flask.c3-na.altogic.com/'
    }),
    tagTypes: [],
    endpoints: (builder) => ({
        getMovies: builder.query({
            query: () => "movies",
            // 新增transformResponse处理响应数据,直接返回嵌套的result数组
            transformResponse: (response) => response.result
        })
    }),
})
export const { useGetMoviesQuery } = movieApi

修改后的调用代码

const { data, error, isLoading } = useGetMoviesQuery();
{data && data.map((item, i) => (
    <Text key={i}>
         {item.name}
    </Text>
))}

补充说明

transformResponse的作用是在RTK Query接收到后端原始响应后,对数据做自定义转换,最终把转换后的数据作为useGetMoviesQuery返回的data值。你之前尝试直接在builder.query后加.result无效,是因为builder.query返回的是接口配置对象,并不存在这个属性。

内容的提问来源于stack exchange,提问作者funky-nd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:55:20