1

几个小时以来,我一直在努力解决这个问题。BLoC 和 StreamController 有一些解决方案,但 GetX 没有合适的解决方案。

正如他们从 BloC 回答的建议,我知道它可能与GetXController dispose有关。然后我在初始化 user_controller 的页面上为控制器应用dispose()方法。但仍然有如下错误

Unhandled Exception: 'package:get/get_rx/src/rx_stream/get_stream.dart': Failed assertion: line 90 pos 12: '!isClosed': You cannot add event to closed Stream
E/flutter (21576): #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
E/flutter (21576): #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
E/flutter (21576): #2      GetStream.add (package:get/get_rx/src/rx_stream/get_stream.dart:90:12)
E/flutter (21576): #3      NotifyManager.addListener.<anonymous closure> (package:get/get_rx/src/rx_types/rx_core/rx_impl.dart:139:15)
E/flutter (21576): #4      GetStream._notifyData (package:get/get_rx/src/rx_stream/get_stream.dart:47:21)
E/flutter (21576): #5      GetStream.add (package:get/get_rx/src/rx_stream/get_stream.dart:92:5)
E/flutter (21576): #6      RxObjectMixin.value= (package:get/get_rx/src/rx_types/rx_core/rx_impl.dart:101:13)
E/flutter (21576): #7      UserController.getUserData (package:hellobabybox/controllers/user_controller.dart:20:12)

提前致谢。

4

5 回答 5

1

尝试在无状态小部件上声明控制器之后添加它:

controller.onInit();
于 2021-03-18T13:37:13.043 回答
0

您试图在控制器被处理后添加一个事件。控制器处置可能发生在小部件处置上。您需要跟踪该方法何时被调用。

于 2021-02-05T13:32:29.870 回答
0

我猜这个特定问题没有具体的解决方法。我长期面临同样的问题。然后我发现,null类中的其他一些函数抛出了一个指针异常。在我使用的整个RxList过程之后,卡住了。因此,解决方案是,如果您遇到此类问题,请尝试找出另一行代码引发的错误。

于 2021-11-25T12:57:40.913 回答
0

就在几分钟前,我遇到了类似的错误。并开始搜索错误。我在 GitHub 上找到了这个。这就是我的答案。

不确定它是否有帮助,但我有同样的问题,如果我在不使用热重载的情况下重新启动应用程序,问题就解决了。

于 2021-10-11T13:32:59.683 回答
-2

我自己从未使用过那个库,但我认为这会给你一些想法。

StreamController controller = ...;
if (!controller.isClosed) {
  controller.add(event); // Only add the event if the stream isn't closed. 
}
于 2021-02-05T13:27:57.123 回答