前言
上一篇我们完成了购物清单的基本功能,但是存在几个问题:
- 可以添加重复的购物项,这样会导致 CheckBox 选择的时候出现两个重复选项同时被操作的问题;
- 没有离线存储,如果是真的购物清单,一退出 App 数据就丢失,那这个应用根本没法用;
- 无法删除购物项。
本篇我们就来解决这些问题。
重复添加购物项的处理
重复添加的时候,我们处理为对于重复添加项,在原有购物项基础上加1,并且在清单显示购物项数量,这样就可以很好地处理这个问题了。重复添加的处理相对简单,一是在 ShoppingItem
中增加一个数量 count
属性,二是我们在 Reducer
中响应AddItemAction
的时候,检查到有重复的项时,把该项的数量加1即可。
这里我们抽出两个通用的方法addItemActionHandler
和toggleItemStateActionHandler
,以便其他地方也可以调用。
List<ShoppingItem> addItemActionHandler(