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

Redux Action需为纯对象:getResult分发问题咨询

问题排查与解决

你遇到的问题根源在于getResult这个Action创建函数的写法不符合Redux对Action的要求,而且箭头函数的语法在这里用错了。

问题分析

Redux要求Action必须是纯对象,但你的getResult函数:

export const getResult = () => { type: 'GET_RESULT' }

这里的大括号{}会被JavaScript解析为函数体的代码块,而不是对象字面量。里面的type: 'GET_RESULT'其实是一个无效的标签语句,这个函数最终会返回undefined,而不是一个符合要求的Action对象——这就是分发时出现问题的原因。

对比你其他正确的Action创建函数(比如addTodo),它们都用小括号()包裹了返回的对象,这样JavaScript才会把它解析成对象字面量,而不是代码块:

export const addTodo = text => ({ type: 'ADD_TODO', id: nextTodoId++, text })

修正方案

你有两种方式修复getResult:

  1. 用小括号包裹对象字面量(推荐,和你其他Action的写法保持一致):
export const getResult = () => ({ type: 'GET_RESULT' })
  1. 在函数体内明确使用return返回对象:
export const getResult = () => {
  return { type: 'GET_RESULT' }
}

修正后,getResult会返回一个标准的Redux Action对象,分发时就不会再出现问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:56:24