如果有一个Action想更新两个item,发现不会进行更新了
造成原因:
AdapterSource copy;
for (int i = 0; i < state.itemCount; i++) {
final AbstractLogic<Object> result = pool[state.getItemType(i)];
if (result != null) {
final Object oldData = state.getItemData(i);
final Object newData = result.onReducer(oldData, action);
if (newData != oldData) {
copy = state.updateItemData(i, newData, copy != null);
}
}
}
MutableSource updateItemData(int index, Object data, bool isStateCopied) {
final MutableSource result = isStateCopied ? this : clone();
return result..setItemData(index, data);
}
造成该问题的原因,可能是fish redux的bug,当有多个item是相同type时,第一次是copy的,但是之后经过updateItemData方法,发现isStateCopied是true,则直接返回了当前对象,之后又在外层将copy的指针指向了原对象。
此时判断两个对象是否相等,肯定是相等的啊…然后就不再更新了…