在创建自定义组件时,我想使用自定义Option组件扩展Select,以便可以添加额外的参数等。
对此的简化版本:
<option value="@value">@ChildContent</option>
@code {
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public string value { get; set; }
}
我正在使用与选项标签完全相同的方式使用组件,并且在html方面,代码呈现的方式完全相同。
看起来一切正常,但不进行初始绑定,例如顶部选项始终处于选中状态,但仅是可见的-值是空字符串。
答案 0 :(得分:1)
您只需要创建具有此类内容的自定义剃刀组件-> 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>
答案 1 :(得分:0)
经过进一步调查,已将其确定为错误。
链接到GitHub dotnet / aspnetcore上的两个问题:
elements inserted dynamically during same diff as don't get auto-selected #21453