RTK Query POST请求可执行但不修改数据,配置标签仍无效
问题分析与解决方案
核心原因:JSONPlaceholder的模拟特性
你用的https://jsonplaceholder.typicode.com是个模拟REST API,它的POST请求不会真的在服务器上创建或修改数据——只会返回一个带模拟id的响应,但服务器端的实际数据完全没变化。这就是为啥你执行POST后重新GET还是旧数据,和RTK的tags配置没关系。
代码里的小笔误修正
你的slice代码末尾有个错误:
// 错误:你定义的是verdeApiSlice,不是verdeSlice export default verdeSlice.reducer; // 改成这个才对 export default verdeApiSlice.reducer;
确认POST请求是否成功的方式
虽然JSONPlaceholder不会改真实数据,但你可以通过返回的响应确认请求是否正常:
const handleClick = async (e) => { e.preventDefault(); try { const mockPost = await addPost(post).unwrap(); console.log("模拟生成的post:", mockPost); // 这里能看到带自动生成id的模拟数据 setPost(initialValue); } catch (error) { console.log("error", error); } };
测试真实数据修改的方法
要验证RTK Query的invalidatesTags是否生效,得用真正会修改数据的API,或者自己搭个简单的本地后端(比如Express),这样POST后服务器数据确实更新,RTK Query才会触发重新获取,你就能看到数据变化了。
内容的提问来源于stack exchange,提问作者Rustam
相关产品推荐
相关产品推荐

