Blazor Server StateHasChanged Triggers InvalidOperationExcep



我在Blazor服务器应用程序中遇到一个StateHasChanged调用的InvalidOperationException。

应用程序有一个主布局组件,其中包含几个子组件。每个组件注册一个在静态类中定义的事件。当用户单击Child1中的按钮时,它会更改服务类中的一些数据,并调用静态类来抛出事件,触发Child2通过其事件处理程序中的StateHasChanged重新呈现自身。这就是InvalidOperationException被抛出的时候。

我知道还有另一种方法可以做到这一点,当服务类中的任何数据发生变化时,让组件注册一个事件。我的印象是,我的静态类事件方法或服务事件方法都很好,但我想知道情况是否如此,或者为什么服务事件方法可能更好。

我已经绕过了使用我的方法触发主布局重新渲染的问题,而不是仅仅Child2,但我担心我错过了一些重要的东西,因为我认为我原来的方法应该工作。

看来异常是线程化的结果。通过将StateHasChanged()替换为InvokeAsync(StateHasChanged),该异常将消失。请参阅此处和此处查看原因。

相关内容

  • 没有找到相关文章

最新更新