根据减速机B更新减速机A.

时间:2016-04-21 21:30:33

标签: reactjs redux

目标:

根据一些过滤器更新我喜欢的颜色。

环境:

有两个缩减器:filterscolors

export function filters(state = {
  noRed: false,
  noBlack: false,
}, action) { ... })

export function colors(state = {
  red: true,
  black: true,
  blue: true
}, action) { ... })

我想根据colors更新filters。我可以同时发送setFiltersetColor,但这不起作用,因为setColor只有在filters完全减少后才会发生。我也可以考虑将filterscolors组合在一起,但我希望将它们分开。

实现目标的最佳途径是什么?我真正需要的是如下:

export function colors(state = [], action) {
  switch (action.type) {
    case constants.SET_FILTER:
      // assume I can access filters reducer here
      var filters = filtersReducer
      var colors = applyFilters(state.colors, filters)
      return colors
    case constants.SET_COLOR:
      return action.colors
    default:
      return state
  }
}

或者我可以在filters缩减器内部发送一个动作,但这是一个反模式。

0 个答案:

没有答案