在创建自定义组件时,我想用自定义Option组件扩展Select,这样我就可以添加额外的参数等。
简化版:
<option value="@value">@ChildContent</option>
@code {
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public string value { get; set; }
}
我使用该组件的方式与选项标记完全相同,在html方面,代码呈现完全相同。
这一切看起来都很好,但没有进行初始绑定。例如,顶部选项总是被选中,但只是可见的-值是空字符串。
您只需要创建自定义剃须刀组件->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:上两个问题的链接
在相同的diff期间动态插入的元素不会自动选择#21453
Blazor:动态未设置选定值#21432