错误状态:无元素

时间:2020-09-23 13:22:34

标签: flutter dart

我只想知道那是为了什么?以及它何时会出现API问题?

         BlocBuilder<OrderBloc, OrderState>(
                  builder: (context, finalstate) {
                    if (state is OrderLoaded) {
                      for (var item in state.orderSent) {
                        totalweightsforsent.add(item.totalWeight);
//right here when i fetch the data from API and when it is done it is no going forward anymore
                      }
                      for (var item in state.orderPackaging) {
                        totalforpacking.add(item.totalWeight);
                      }

2 个答案:

答案 0 :(得分:2)

不,这不是API问题,出于某种原因存在

让我们看一下self.player_list_table.setWordWrap(True)的示例,该示例从列表中获取颜色字符串

无效的颜色字符串

firstWhere

输出:

没有找到匹配的颜色

有效颜色字符串

void main() {
  List<String> list = ['red', 'yellow', 'pink', 'blue'];
  var newList = list.firstWhere((element) => element.contains('green'), 
      orElse: () => 'No matching color found');
  print(newList);
}

输出:

蓝色

以上都是有效案例,但是如果 void main() { List<String> list = ['red', 'yellow', 'pink', 'blue']; var newList = list.firstWhere((element) => element.contains('blue'), orElse: () => 'No matching color found'); print(newList); } 块在那里丢失,它将抛出orElse()

BadStateException

输出:

[VERBOSE-2:ui_dart_state.cc(171)]未处理的异常:错误状态:无元素

答案 1 :(得分:1)

查看此错误的另一种方法是访问空列表的 firstlast 之类的属性,例如:

final myList = [];
print(myList.first);

解决方案是在访问相关列表属性之前始终执行 length > 0 检查。