flutter - 未处理的异常:未处理的错误“包:bloc/src/transition.dart”:断言失败:第 27 行 pos 16:“nextState!= null”:不正确
问题描述
更新 state 中的值时出现此错误。请建议我如何解决它。在颤动中使用 BLOC 时更新当前状态的最佳方法是什么。添加了我的 BLOC 类代码。此错误发生 onItemClick 事件。
onItemClicked: (e) async* {
try {
yield walmartState;
List<CommonDataObj> dataList =
walmartItemChanged(e.index, e.walmartList);
yield state.copyWith(walmartList: some(right(dataList)));
LinkedHashMap<String, RequestData> reqMap = state.requestDataMap;
dataList.forEach((element) {
if (element.isSelected) {
RequestData data = RequestData(element.intStoreId, element.intId);
if (reqMap.containsKey(e.key)) {
reqMap.update(e.key, (value) => data);
} else {
reqMap.putIfAbsent(e.key, () => data);
}
} else {
if (reqMap.containsKey(e.key)) {
var value = reqMap[e.key];
if (value.int_product_id == element.intId &&
value.int_store_id == element.intStoreId) {
reqMap.remove(e.key);
}
}
}
});
yield state.copyWith(requestDataMap: reqMap);
yield state.copyWith(requestDataMap: reqMap);
print('State request Data Map : $reqMap');
} catch (e) {
print(e);
}
try {
bool selected = false;
e.currentDataMap.forEach((key, value) {
for (var item in value) {
if (item.isSelected) {
selected = true;
break;
}
}
});
int curQuantity = state.currentQuantity;
if (curQuantity == 0) {
curQuantity = curQuantity + 1;
} else if (curQuantity > 0 && !selected) {
curQuantity = 0;
}
var newState = state.copyWith(currentQuantity: curQuantity);
yield newState;
} catch (e) {
print(e);
}
}
解决方案
推荐阅读
- sql - SQL 分组依据。为所有组添加具有平均结果的新行
- javascript - 预订应用程序调用函数
- python - 使用 BeautifulSoup 在 python 中抓取多个页面
- php - 如何在php url中的标题后显示id
- parameters - 在运行时更改 ODM 规则服务器中的规则参数?
- android-studio - android studio:插件flutter-i18n不起作用
- python - 调查结果的条形图为 pd.value_counts()
- sql - 如何选择包含关键字的行?
- javascript - 错误:无法在“节点”上执行“appendChild”:在 JavaScript 中使用微调器时,参数 1 不是“节点”类型
- python-3.7 - 如何修复“RuntimeError:生成器引发的 StopIteration”