尝试从列表中删除对象时迭代期间的并发修改

lam*_*tat 4 dart flutter

我尝试在多个列表中循环,最后比较它们的名称,如果它们不匹配,则将其从列表中删除......

\n\n

但我收到此错误:

\n\n
\n

迭代期间并发修改:

\n
\n\n

虽然我已经复制了原始列表只是为了避免这个错误..但仍然得到它..我尝试的是:

\n\n
globals.filteredPollsList = pollsList;\npollsList.forEach( (p) {\n  for (var e in entitiesList) {\n    print(e.name);\n    for (var entity in entitiesFilter) {\n      print(entity);\n      print(e.name);\n      if (e.name != entity && p.entityId != e.id) {\n        print('true');\n        globals.filteredPollsList.remove(p);\n      }\n    }\n  }\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我收到此错误:

\n\n
flutter: \xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1 EXCEPTION CAUGHT BY GESTURE \xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\nflutter: The following ConcurrentModificationError was thrown while handling a gesture:\nflutter: Concurrent modification during iteration: Instance(length:8) of '_GrowableList'.\nflutter:\nflutter: When the exception was thrown, this was the stack:\nflutter: #0      List.forEach (dart:core/runtime/libgrowable_array.dart:279:36)\nflutter: #1      _ShapedWidgetState.filterPoll (package:moi_polls_app/pages/home.page.dart:1484:15)\nflutter: #2      _ShapedWidgetState.build.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:moi_polls_app/pages/home.page.dart:1896:45)\nflutter: #3      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)\nflutter: #4      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)\nflutter: #5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)\nflutter: #6      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)\nflutter: #7      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:175:7)\nflutter: #8      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)\nflutter: #9      PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)\nflutter: #10     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)\nflutter: #11     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:180:19)\nflutter: #12     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:158:22)\nflutter: #13     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:138:7)\nflutter: #14     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:101:7)\nflutter: #15     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:85:7)\nflutter: #16     _invoke1 (dart:ui/hooks.dart:168:13)\nflutter: #17     _dispatchPointerDataPacket (dart:ui/hooks.dart:122:5)\nflutter:\nflutter: Handler: onTap\nflutter: Recognizer:\nflutter:   TapGestureRecognizer#e99b3(debugOwner: GestureDetector, state: possible, won arena, finalPosition:\nflutter:   Offset(283.3, 608.7), sent tap down)\n
Run Code Online (Sandbox Code Playgroud)\n\n

怎么解决这个问题?

\n

die*_*per 6

如果您想复制列表,请使用以下命令:

globals.filteredPollsList = List.from(pollsList);
Run Code Online (Sandbox Code Playgroud)