使用RTK Query获取Partner数据返回undefined问题求助
问题排查步骤
1. 修正RTK Query Hook的解构错误
你在组件里错误地将useGetPartnerQuery()的返回值解构为data2,但RTK Query的Query Hook固定返回data属性,并非自定义命名的data2。正确写法:
const { data: partnersData } = useGetPartnerQuery(); console.log("partners", partnersData);
或直接使用默认的data字段:
const { data } = useGetPartnerQuery(); console.log("partners", data);
这是导致你看到undefined的直接原因。
2. 检查请求状态与错误信息
解构时同时获取isLoading、error属性,确认请求是否正常完成:
const { data, isLoading, error } = useGetPartnerQuery(); console.log("partners loading:", isLoading); console.log("partners error:", error);
根据错误信息针对性排查:
- 若提示404:检查
REACT_APP_BASE_URL是否正确,确认前端请求的完整URL(如BASE_URL/client/partners)能否在浏览器/Postman中正常返回数据 - 若提示500:检查后端Partner模型是否正确连接MongoDB,数据库中是否存在Partner数据,后端控制台是否有报错信息
3. 验证后端接口可用性
直接在浏览器地址栏或API测试工具中访问你的后端地址/client/partners,确认:
- 接口返回200状态码
- 返回内容为合法的数组(即使是空数组,也不会返回
undefined)
如果后端返回空数组,说明数据库中无Partner数据,需先添加测试数据
4. 确认RTK Query配置一致性
你的getPartner端点providesTags设置为["Partners"],虽不会直接导致data为undefined,但需确保标签名称与后续缓存逻辑统一,避免后续功能异常。
内容的提问来源于stack exchange,提问作者Valentina Loaiza
相关产品推荐
相关产品推荐

