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

Redux Toolkit Payload类型不识别问题求助

Redux Toolkit Payload类型不匹配问题解决

核心问题1:dispatch传参格式错误

你的setWaypointToEdit action期望接收**WaypointToEditPayload类型的对象**(包含waypoint字段),但调用时直接传入了getWaypoint的返回值(Waypoint | null),没有包裹成符合Payload结构的对象,这是类型错误的直接原因。

修复方式:

调用dispatch时,把返回值包裹成Payload结构:

dispatch(setWaypointToEdit({ waypoint: this.getWaypoint(areaNumber, waypointId) }))

核心问题2:Reducer中错误赋值state

Redux Toolkit内置Immer,允许直接“修改”state(实际是生成不可变副本),但直接给state重新赋值的写法会绕过Immer的处理,不仅不符合RTK最佳实践,还可能导致状态更新失效或类型异常。

修复后的Reducer代码:

setWaypointToEdit: (state, action: PayloadAction<WaypointToEditPayload>) => {
  const { currentArea } = state.areas;      
  // 直接修改state,Immer会自动处理不可变更新
  state.areas.gridPolygonsData[currentArea] = {
    ...state.areas.gridPolygonsData[currentArea],
    waypointToEdit: action.payload.waypoint,
  };
},

额外检查:类型定义一致性

确认gridWaypoints的元素类型确实是Waypoint,且Waypoint和RequiredWaypoint之间存在兼容关系(比如RequiredWaypoint是Waypoint的必填版本),避免潜在的类型不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:48:18