You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MudDatePicker设置PickerVariant.Dialog后首次点击无法选中日期

MudDialog内MudDatePicker(PickerVariant.Dialog)首次选择无响应问题

问题说明

这是MudBlazor的已知兼容性问题,出现在MudDatePicker设置PickerVariant="PickerVariant.Dialog"并嵌套在MudDialog内的场景中。原因是双层对话框的模态机制干扰了组件状态同步,首次选择日期后绑定值未及时同步到视图,二次选择时状态才会正常更新。

保留PickerVariant.Dialog的解决方案

无需放弃对话框样式,可通过以下方式修复:

1. 手动触发状态刷新

在DateChanged事件中调用StateHasChanged()强制组件渲染,确保选中值及时显示:

<MudDatePicker @bind-Date="StartDate" PickerVariant="PickerVariant.Dialog" 
               DateChanged="() => StateHasChanged()" Label="开始日期" />
<MudDatePicker @bind-Date="EndDate" PickerVariant="PickerVariant.Dialog" 
               DateChanged="() => StateHasChanged()" Label="结束日期" />

2. 用EditForm管理表单状态

将控件包裹在EditForm中,借助Blazor的表单上下文自动同步状态:

<EditForm Model="@FormData">
    <MudDatePicker @bind-Date="FormData.StartDate" PickerVariant="PickerVariant.Dialog" Label="开始日期" />
    <MudDatePicker @bind-Date="FormData.EndDate" PickerVariant="PickerVariant.Dialog" Label="结束日期" />
</EditForm>

@code {
    private FormDataModel FormData { get; set; } = new();

    private class FormDataModel
    {
        public DateTime? StartDate { get; set; }
        public DateTime? EndDate { get; set; }
    }
}

3. 升级MudBlazor版本

该问题在MudBlazor 6.0及以上的部分更新版本中已被官方修复,建议升级到最新稳定版以彻底解决。

内容的提问来源于stack exchange,提问作者Lisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:07:14