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

如何在JS中实现生成指定结构对象的函数 用于react-redux reducer场景

React-Redux Reducer 动态结构对象生成实现方案

核心需求

在reducer开发中,需要调用函数传入两个参数(动态键名、对应值),返回如下固定结构的对象:

{
  reducer: {
    AA: BB
  }
}

实现代码

基础版(仅生成目标结构)

利用ES6计算属性名实现动态键绑定,代码如下:

// 箭头函数简写形式
const objectCreator = (AA, BB) => ({ reducer: { [AA]: BB } })

如果需要写完整函数形式方便加额外逻辑:

const objectCreator = (key, value) => {
  // 此处可以加参数校验等自定义逻辑
  return {
    reducer: {
      [key]: value
    }
  }
}

扩展版(支持合并原有reducer属性)

如果需要保留当前reducer中已有的其他键值对,避免覆盖,可以用扩展运算符改造:

const objectCreator = (key, value, existReducer = {}) => ({
  reducer: {
    ...existReducer,
    [key]: value
  }
})

使用示例

调用函数传入对应参数即可得到目标结构:

// 示例:生成key为user、值为用户信息的结构
const result = objectCreator('user', { id: 1, name: '张三' })

// 输出结果
// {
//   reducer: {
//     user: { id: 1, name: '张三' }
//   }
// }

注意事项

  • 动态键必须用[]包裹,也就是计算属性语法,否则会把变量名直接作为固定键,无法实现动态生成效果
  • 该写法完全兼容redux的reducer返回值规范,不会出现不可序列化的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:06:02