Dependency injection StateSubscriber.Subscribe未被释放

Dependency injection StateSubscriber.Subscribe未被释放,dependency-injection,blazor,fluxor,Dependency Injection,Blazor,Fluxor,我正在使用Fluxor开发一个服务器端应用程序,该项目现在包括六个操作,以及相应数量的减缩器和效果。在完成时,我预计将有20多个行动与相关的减少和影响 Fluxor的状态管理运行良好,但随着我构建项目,我开始随机出现以下InvalidOperationException: System.InvalidOperationException HResult=0x80131509 Message=DisposableCallback with Id "StateSubscriber.

我正在使用Fluxor开发一个服务器端应用程序,该项目现在包括六个操作,以及相应数量的减缩器和效果。在完成时,我预计将有20多个行动与相关的减少和影响

Fluxor的状态管理运行良好,但随着我构建项目,我开始随机出现以下InvalidOperationException:

System.InvalidOperationException
  HResult=0x80131509
  Message=DisposableCallback with Id "StateSubscriber.Subscribe" was not disposed.
  Source=Fluxor
  StackTrace:
   at Fluxor.DisposableCallback.Finalize()
我的代码中没有引发异常-它只是弹出。StackTrace并没有给我太多的时间去做,我有点纠结于如何诊断和纠正这个问题

当异常发生时,我的应用程序崩溃,然后在启动时立即再次显示异常。重建似乎可以清除所有这些,但我怀疑存在垃圾收集/内存管理问题

在我的代码中,我没有显式地处理任何Fluxor对象,并且希望在Fluxor框架中处理这些对象。然而,“StateSubscriber.Subscribe”让我怀疑是否应该处理Fluxor对象。有人能给我一些关于这方面的最佳实践指导吗


我使用的是Fluxor 3.1.1,见刚刚发布的3.2。我会升级到那个版本,看看有没有变化。同时,任何关于如何诊断此问题的想法都将不胜感激。

FluxorComponent通过覆盖OnInitialized自动订阅状态


此错误的主要原因是在重写方法时调用了错误的基方法,或者在重写Dispose时没有调用基方法;出于其他原因,请参见:

如果没有代码,我们将无法帮助您该问题确实提供了足够的信息以提供帮助,因此不应关闭该问题。我明确订阅状态的唯一位置是在我的索引页的“受保护的override async Task OnAfterRenderAsync(bool firstRender)”事件中。当firstRender为True时,我订阅状态的StateChanged事件。这不是必须的吗?我不会覆盖Dispose anywhere。从FluxorComponent开始,您根本不需要手动订阅任何状态,它将自动订阅/取消订阅。我想说,你目前的问题是,你正在订阅OnAfterRenderAsync,而且从未取消订阅。对于延迟@Peter,我深表歉意。是的,问题现在解决了,谢谢。你是对的,我没有退订,我的代码有点。。。“tangled”:)在我的例子中,它是由异步/同步初始化方法之间的不匹配引起的;i、 e.如果使用
OnInitializedAsync
则应调用
base.OnInitializedAsync()
,而不是
base.OnInitialized()