我一直在尝试在这里使用此版本的EventAggregator
我一直在Blazor Server应用程序中使用它,这是对使用EventAggregator的旧Silverlight应用程序的重写。然而,我遇到了很多问题。最近的一个问题是,它没有在应该的时候触发事件(不知道为什么它不能正常工作(。
无论如何,我正在寻找另一种模式。
我正在寻找的是一种告诉多个组件;CurrentCustomer";已更改,以便组件可以自行更新。
有推荐的模式或方法吗?
这是我找到的Blazor的唯一EventAggregator:https://mikaelkoskinen.net/post/blazor-eventaggregator-2-0-0-auto-refresh
唯一值得注意的是,当前默认值如下:
builder.Services.AddScoped<EventAggregator.Blazor.IEventAggregator, EventAggregator.Blazor.EventAggregator>();//Use this.
//builder.Services.AddEventAggregator(); Not this. It adds it as a singleton which is NOT what we want. Change requested of author. The Events will be propagated to every user everywhere, instead of just the current user.
到目前为止,我发现的最好的东西是StateContainer:这里它只是一个保存状态的简单类,您可以订阅它的事件。
两年后,我现在使用了一种不同于尝试激发和捕捉事件的方法。事件导致内存问题,在Blazor Server这样的基于组件的环境中无法正常工作。
我没有使用事件,而是使用内置的级联参数将参数向下传递到所有需要它们的组件。
因此,例如,如果您有一个CurrentCustomer的级联参数,它会将其传播到组件的层次结构中。