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

Redux派发布尔值触发非可序列化值错误问题求助

问题解决:Redux状态中检测到非序列化值

你遇到的报错和布尔值本身无关,问题出在reducer的写法错误:

在Plannerstore.js里,你把createDialogOpen的reducer写成了嵌套箭头函数:

createDialogOpen: (state) => (value) => {
  state.createDialogOpen = value;
},

这种写法会让Redux把返回的内层函数存入状态中——而函数属于不可序列化的值,这才触发了A non-serializable value was detected in the state错误。

正确修改方式

把reducer改成Redux Toolkit要求的标准格式:接收state和action两个参数,通过action.payload获取派发来的布尔值:

修改后的Plannerstore.js:

import { createSlice } from "@reduxjs/toolkit";

export const plannerSlice = createSlice({
  name: "planner",
  initialState: {
    createDialogOpen: false,
  },
  reducers: {
    createDialogOpen: (state, action) => {
      state.createDialogOpen = action.payload;
    },
  },
});

export const { createDialogOpen } = plannerSlice.actions;

export default plannerSlice.reducer;

你的其他代码(Todo.js和Store.js)都没问题,修改后再派发布尔值就不会报错了。

内容的提问来源于stack exchange,提问作者Craws

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:55:47