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;
}
};