我有这个自定义组件
<label class="btn-svg label-wrapper">
@Title
@if (Multiple)
{
<InputFile OnChange="@InputFileOnChange" class="custom-input-hide" accept="@FileFilter" multiple/>
}
else
{
<InputFile OnChange="@InputFileOnChange" class="custom-input-hide" accept="@FileFilter"/>
}
</label>
@code
{
[Parameter]
public string Title { get; set; }
[Parameter]
public string FileFilter { get; set; }
[Parameter]
public bool Multiple { get; set; }
[Parameter]
public EventCallback<InputFileChangeEventArgs> InputFileOnChange { get; set; }
}
如何返工@if (Multiple)
零件并添加类似于OnChange="@InputFileOnChange"
的multiple
参数?
我尝试在InputFile中添加@Multiple
字符串参数。像这样<InputFile OnChange="@InputFileOnChange" class="custom-input-hide" accept="@FileFilter" @Multiple/>
但是组件没有呈现错误-Unhandled exception rendering component: Failed to execute 'setAttribute' on 'Element': '@Multiple' is not a valid attribute name.
您可以使用
<InputFile ... multiple="@Multiple" />
当@Multiple
为false
时,Blazor将删除"multiple"属性,当为true时,它将导致HTML中只有multiple
,而没有=
。
它对hidden
、disabled
等的工作原理相同