ElementReference.FocusAsync() 用于让 HTML 元素获得焦点,需 await 调用且仅在组件已渲染、元素存在于 DOM 时有效;应通过 @ref 绑定 ElementReference,避免在 OnInitialized 中调用,推荐在 OnAfterRender(配合标志位)或用户事件中使用,并注意元素状态与兼容性。

在 Blazor 中,ElementReference.FocusAsync() 用于让某个 HTML 元素获得焦点,常用于表单自动聚焦、键盘导航或用户交互触发后快速定位输入框。它返回一个 ValueTask,需用 await 调用,且只在组件已渲染、元素真实存在于 DOM 中时才有效。
确保 ElementReference 已正确绑定
必须先通过 @ref 将元素引用到 ElementReference 类型的字段或属性上,不能直接对字符串或未初始化的变量调用:
- 在 Razor 文件中:
<input type="text"> - 在 C# 代码块中声明:
private ElementReference myInput; - 避免在
OnInitialized中立即调用 FocusAsync —— 此时 DOM 尚未生成,会静默失败
推荐在 OnAfterRender 或事件处理中调用
最稳妥的时机是 OnAfterRender(配合标志位)或用户触发的事件(如按钮点击、输入完成):
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~