自定义 Blazor Select 选项 - 不从绑定值中选择初始项

Custom Blazor Select Option - not selecting initial item from bound value

在创建自定义组件时,我想使用自定义选项组件扩展 Select,以便我可以添加额外的参数等。

这个的简化版本:

<option value="@value">@ChildContent</option>   

@code {
    [Parameter] public RenderFragment ChildContent { get; set; }
    [Parameter] public string value { get; set; }
 }

我以与选项标签完全相同的方式使用该组件,并且 html-wise,代码呈现完全相同。

这一切似乎工作正常,但没有进行初始绑定,例如。顶部选项始终处于选中状态,但仅可见 - 值为空字符串。

您只需要创建自定义剃须刀组件 -> CustomOption.razor 具有此类内容

    <option value="@value" class="@specAttribute">@ChildContent</option>

@code {
    [Parameter] public RenderFragment ChildContent { get; set; }
    [Parameter] public string value { get; set; }
    [Parameter] public string specAttribute { get; set; }
}

然后使用它:

<InputSelect  @bind-Value="@language">
    <CustomOption value="English" specAttribute="list-item">English</CustomOption>
    <CustomOption value="Spanish" specAttribute="list-item">Spanish</CustomOption>
</InputSelect>

经过进一步调查,这已被确定为一个错误。

GitHub dotnet/aspnetcore 上两个问题的链接:

elements inserted dynamically during same diff as don't get auto-selected #21453

Blazor: Dynamic not setting selected value #21432