不确定在标题中写什么,它们可能并不都是匿名方法,但这里是:
假设我们有这个异步函数:
public async Task Delete(){
//something
}
我正在使用 Blazor 服务器端,我对以下四种调用函数的方式感到好奇。假设它们位于 div 标签内。
onclick="@Delete"
onclick="@(() => Delete(id))"
onclick="@(async () => await Delete(id))"
onclick="@(e => Delete(person.Id))
我不确定 1 是否是 Blazor 的新手,但它是否理解该方法是否是异步的?
如果需要传入参数,则会使用2和3,但我以前从未使用过异步部分,只在旧帖子中看到过。还需要说吗"async () =>"
?
在 Blazor 的早期版本中,您需要使用选项 3,因为async
不支持函数。如果您错过了await
Blazor 无法知道该方法已完成,因此您需要手动调用StateHasChanged
因此如果需要的话可以重新渲染组件。
但是,现在 Blazor 确实支持异步方法,因此您可以坚持使用选项 1,但需要注意的是您需要该方法返回Task
并不是void
.
所以你需要这样的东西:
public async Task Delete(){
//something
}
在 Blazor 中:
onclick="@Delete"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)