我使用Fluxor来管理Blazor-wasm应用程序中的状态。
我有以下效果,这是在从删除项目中获得结果后触发的:
[EffectMethod]
public Task HandleDeleteBudgetResultAction(DeleteBudgetResultAction action, IDispatcher dispatcher)
{
if (action.Success)
{
NavigationManager.NavigateTo("/budgets", false);
}
return Task.CompletedTask;
}
基本上,如果删除成功,请导航回列表页面。如果不是,就什么都不做,因为我们需要保留在详细信息页面上。
在这种情况下,我不需要调度一个操作,但我必须根据EffectMethod
属性的要求包含dispatcher参数。由于我在这个方法中没有异步进程,所以我返回Task.CompletedTask
。
这显然是错误的,所以我的问题是:这是Fluxor的限制,还是我对流的架构不正确据我所知,效果不一定要调度动作。
我想我可能需要将导航状态转移到商店中,但我想我会再次遇到同样的问题,因为我仍然需要从某个地方调用NavigationManager。
感谢任何帮助或更好的解决方案:(
这是Fluxor
的一个限制。只要在Fluxor选项上调用了UseRouting
,就可以调度GoAction,而不是注入NavigationManager。
builder.Services.AddFluxor(options => options
.UseRouting()
.ScanAssemblies(typeof(Program).Assembly)