如何结合数组/对象约简

时间:2019-11-12 14:51:15

标签: reactjs redux react-redux

我的应用具有以下层次结构:

  • 标签
    • 过滤器
    • tableData

现在选项卡是一个数组。它包含对象-也是过滤器对象。

示例:

[{type:1, filter:{sortBy:publisDate,asc}, order:0, name: 'fun tab'}];

现在我理想的减速器设置为:

我有一个制表符减少器,用于控制活动的标签,订单,名称等。

然后我有了一个过滤器选项卡,用于控制过滤器更新。

最好的情况下,我不必担心“ activeTab”等问题,但是减速器可以处理逻辑。因此,当我更新过滤器时,它会正确显示在选项卡数组中。

我可以将所有这些都放在一个减速器中,但是它很多,最终会一团糟。

执行此操作的最佳策略是什么?

1 个答案:

答案 0 :(得分:0)

我不知道您到底想使用此选项卡/过滤器做什么,但是如果所有内容都将在同一屏幕中关联,那么在一个减速器中执行所有操作就不会很糟糕。例如,您可能会遇到这样的事情:

TabsReducer

{
  activeTab: 'products',
  filter: {
    term : 'sarasa',
    order: 0,
    sortBy: 'name asc',
  }
}

然后,在减速器中,如果您想更新过滤器或其他内容,则可以

if (type === 'CHANGE_FILTER_TERM') {
  return {
    ...state,
    filter: {
      ...state.filter,
      term: payload.term
    }
  }
}