-
Notifications
You must be signed in to change notification settings - Fork 25.1k
Closed
Labels
BlazorPri1Source - Docs.msDocs Customer feedback via GitHub IssueDocs Customer feedback via GitHub Issueaspnet-core/svcblazor/subsvcdoc-bugdoc-enhancement
Description
Description
This code section
<div class="card bg-light mb-3" style="width:30rem">
<div @onclick="Toggle" class="card-header">
<h2 class="card-title">Toggle (<code>Expanded</code> = @expanded)</h2>
</div>
@if (expanded)
{
<div class="card-body">
<p class="card-text">@ChildContent</p>
</div>
}
</div>
@code {
[Parameter]
public bool Expanded { get; set; }
[Parameter]
public EventCallback<bool> ExpandedChanged { get; set; }
[Parameter]
public RenderFragment? ChildContent { get; set; }
private bool expanded;
protected override void OnParametersSet() => expanded = Expanded;
private async void Toggle()
{
expanded = !expanded;
await ExpandedChanged.InvokeAsync(expanded);
}
}
Uses async void Toggle instead of async Task Toggle, even though the @onclick="Toggle" event handler supports Task methods as well.
This is considered a code smell, and we should avoid providing bad examples, as async void should generally be avoided in most cases.
Therefore, it should be replaced with private async Task Toggle() or private async Task ToggleAsync().
Page URL
Content source URL
Document ID
e687c953-409d-49b9-664a-19ca1f836e4b
Article author
Metadata
Metadata
Assignees
Labels
BlazorPri1Source - Docs.msDocs Customer feedback via GitHub IssueDocs Customer feedback via GitHub Issueaspnet-core/svcblazor/subsvcdoc-bugdoc-enhancement
Type
Projects
Status
Done