Blazor插入文本未实时更新,如何让MudTextField输入同步显示在MudBadge上
问题原因
MudTextField 默认的 @bind-Value 绑定的是 onchange 事件,仅会在输入框失焦时同步值,你同时声明自定义 @oninput 事件和默认 @bind-Value 会产生逻辑冲突,导致值更新后没有触发实时渲染。
解决方案
方案1(最推荐):使用 MudTextField 自带的 Immediate 属性
直接删除自定义的 @oninput 事件,给组件增加 Immediate="true" 配置即可,该属性会让绑定值在每次输入字符时实时更新,无需等待失焦。
修改后的输入框代码:
<MudTextField @bind-Value="@itemAttribute.Title" Immediate="true" />
方案2:自定义输入事件处理
如果需要在输入时执行额外自定义逻辑,可以放弃默认 @bind-Value 写法,手动绑定值和输入事件,必要时调用 StateHasChanged() 主动触发渲染:
修改后的输入框代码:
<MudTextField Value="@itemAttribute.Title" @oninput="(e) => { itemAttribute.Title = e.Value?.ToString() ?? string.Empty; StateHasChanged(); }" />
内容的提问来源于stack exchange,提问作者T0bi
相关产品推荐
相关产品推荐

