Redux 过滤数据的最佳实践

Redux best practice to filter data

在开发应用程序的过程中,我遇到了一个问题,关于我是否正确使用了 Redux。 我有一个收藏夹:[],我在其中添加产品 objects 并呈现他们的列表。但是,为了不丢失数据,我必须将此 fav:[] 复制到 favCopy:[] ,然后才执行 .filter 示例代码:

case "fav":
                state.fav = action.payload.filter === 'all'
                    ? state.favCopy
                    : state.favCopy.filter((item: any) => item[type] === action.payload.filter)

                break;

我想通过保持原始数组完好无损来了解我有多正确?也许有一种方法可以不乘数组而只使用一种状态?

大多数情况下,我们建议不要直接在减速器中进行过滤。相反,将原始数组保持在 as-is 状态,然后还存储您希望如何完成过滤的描述。从那里,根据需要使用选择器函数导出过滤值:

https://redux.js.org/usage/deriving-data-selectors