编写减速器的更好方法?

时间:2019-12-26 19:56:23

标签: reactjs redux redux-reducers

是否有更好的方式编写以下代码:

export const getItemsSuccess = (state, entity, payload) => {
  const {count, rows} = payload

  const clonedState = {...state}
  clonedState[entity] = {...clonedState[entity], count, rows}

  return {
    ...clonedState,
  }
}

1 个答案:

答案 0 :(得分:1)

对于像这样的简单情况,我倾向于将其内联到单个对象文字中。它使逻辑更容易理解。

azure-storage
  1. 使用有效载荷export const getItemsSuccess = (state, entity, {count, rows}) => { return { ...state, [entity]: { ...state[entity], count, rows, } } } 的解构分配。这样一目了然,有效载荷应具有的属性一目了然,并使它们易于在减速器体内使用。

  2. 仅克隆对象一次。您有{count, rows}const clonedState = { ...state },其中return { ...clonedState }可以很好地工作(或返回像我一样的构造文字)。

  3. 不要为仅在最终状态下使用过一次的值创建局部变量。这样可以更轻松地跟踪减速器的流量。

  4. 将整个新状态构造为单个对象文字可以很容易地判断发生了什么以及数据如何变化。

这有点主观,但是我认为这种风格有其优点。