【发布时间】:2021-11-05 16:09:35
【问题描述】:
当我将@onclick 中的函数用于复选框并检查@bind-Value 的输入时,返回的值不同,看起来@onclick 事件比@bind-Value 先执行
跟随示例
<div>
<MudCheckBox @bind-Checked="@testCheck" Color="Color.Secondary" @onclick="()=> ChecktestBox()"></MudCheckBox>
<p>Value: @testCheck</p>
</div>
@code {
private bool testCheck { get; set; } = false;
private void ChecktestBox() {
MessageBox.Show(testCheck.ToString());
if(testCheck)
....
}
}
结果是@onclick事件中添加的函数即使值为true也返回false
并且在使用的消息中Value: @testCheck 正确返回了值
我应该怎么做,从正确的@testCheck值开始
【问题讨论】:
-
对 MudBlazor 不太熟悉,但有几个事件正在发生。 Blazor 绑定进程绑定到
onchange,它实际上更新了TestCheck的值。我没有安装 mudblazor 来检查执行顺序,但我猜onclick在onchange之前执行。如果您想要在testCheck更改时发生事件,请将其放入testChecks 设置器中。 -
您也可以尝试
oninput事件。它可能适用于复选框并返回新值,但我还没有测试过!