Redux发送Delete请求遇Actions must be plain objects错误,无法实时更新数据
问题分析与修复方案
报错与更新异常的原因及修复
1. "Actions must be plain objects" 错误
你的Store配置方式不符合Redux Toolkit的规范,configureStore默认已集成redux-thunk中间件,无需手动通过compose和applyMiddleware添加。当前写法会导致中间件未正确加载,无法处理返回函数的异步action,从而触发报错。
修复Store配置代码:
import { configureStore } from "@reduxjs/toolkit"; import { reducers } from "./rootreducer"; const store = configureStore({ reducer: reducers }); export default store;
2. 删除后无法实时更新Store
Reducer的DELETE分支判断条件错误:MongoDB文档的ID字段为_id,但你使用了post.id !== action.payload,导致过滤逻辑失效,Store中的旧数据未被移除,必须刷新页面才能看到变化。
修复Reducer的DELETE分支:
case DELETE: return posts.filter((post) => post._id !== action.payload);
额外验证点
确保组件中导入的是Redux Action层的deletePost函数,而非API层同名的deletePost请求函数,避免因导入混淆导致逻辑异常。
内容的提问来源于stack exchange,提问作者Hasan
相关产品推荐
相关产品推荐

