我有这个应用程序,可以在这里找到源代码github
单击示例时,它会加载示例页面,该页面又应通过调用设置抽屉组件类型(侧边栏)并打开右侧边栏的 blazor 状态操作来动态加载右侧边栏。
它贯穿代码步骤,但侧边栏的最后一个初始化步骤永远不会被调用,即使它已被动态加载到组件中。下面给出了我如何设置它的代码片段。
<MudDrawer Open="@DrawerEnd" Width="300px" ClipMode="DrawerClipMode.Never" Anchor="Anchor.End" Elevation="1" Variant="@DrawerVariant.Persistent">
<MudDrawerHeader>
<MudText Typo="Typo.h6">Settings</MudText>
</MudDrawerHeader>
@if (DrawerComponent is not null)
{
<DynamicComponent Type="@DrawerComponent" />
}
</MudDrawer>
public partial class AppState
{
public class LoadDrawerComponentHandler : ActionHandler<LoadDrawerComponentAction>
{
public AppState AppState => Store.GetState<AppState>();
public LoadDrawerComponentHandler(IStore store) : base(store) { }
public override async Task<Unit> Handle(LoadDrawerComponentAction action, CancellationToken aCancellationToken)
{
Console.WriteLine("loaddrawer:component:handler");
AppState.DrawerComponent = action.Component;
return await Unit.Task;
}
}
}
仅当您第二次单击示例链接时才会调用侧边栏 oninitialized,这是一种奇怪的行为。有谁知道为什么?任何帮助深表感谢。