Javascript 基于属性从redux状态删除多个条目的模式

Javascript 基于属性从redux状态删除多个条目的模式,javascript,redux,react-redux,Javascript,Redux,React Redux,我正在使用丹·阿布拉莫夫在课程中使用的模式。在这个过程中,他的状态是这样的: { byIds: { 123: {}, 456: {} }, allIds: [ 123, 456 ] } 因此,除了这个总体思路之外,想象一下,您有多个列表,而不仅仅是一个TODO列表。状态中的每个todo都有一个listId属性,该属性引用它所属的列表。从存储中删除列表时,还需要删除与该列表关联的所有TODO。我理解如何在状态的byIds部分执行此操作,因为byIds中的每个todo都

我正在使用丹·阿布拉莫夫在课程中使用的模式。在这个过程中,他的状态是这样的:

{
  byIds: {
    123: {},
    456: {}
  },
  allIds: [ 123, 456 ]
}
因此,除了这个总体思路之外,想象一下,您有多个列表,而不仅仅是一个TODO列表。状态中的每个todo都有一个listId属性,该属性引用它所属的列表。从存储中删除列表时,还需要删除与该列表关联的所有TODO。我理解如何在状态的byIds部分执行此操作,因为byIds中的每个todo都有一个listId属性。然而,我不确定从该州allIds部分删除TODO的最佳方式是什么。下面是一个简单的状态和减速器:

待办事项状态

{
  byIds: {
    123: { listId: 'abc' },
    456: { listId: 'def' }
  },
  allIds: [ 123, 456 ]
}
TODOS ALLIDS减速器

const allIds = (state = [], action) => {
  switch (action.type) {
    case DELETE_TODO:
      return state.filter(t => (t !== action.id));
    case DELETE_TODOS_FOR_LIST:
      // ========================
      // HOW DO I DO THIS?
      // ========================
    default:
      return state;
  }
};