0

我有这个应用程序,可以在这里找到源代码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,这是一种奇怪的行为。有谁知道为什么?任何帮助深表感谢。

在此处输入图像描述

在此处输入图像描述

4

0 回答 0