
Gradio Bug
快速结论:该报错在 Gradio 6.19.0 版本的 Hugging Face Spaces 应用中触发,表现为页面加载或新会话中的首次点击无反应,第二次点击正常。优先排查 Gradio 版本是否为 6.19.0,并升级到 6.20.0 或更高版本。
问题场景
用户在 Gradio 6.19.0 的 gr.Blocks() 应用(部署在 Hugging Face Spaces,ssr_mode=False)中,点击任意按钮(如登录按钮、切换 gr.Column(visible=...) 的按钮)时,首次点击无任何可见效果,再次点击同一按钮则立即生效。此问题在不同浏览器(Chrome/Windows、Android、iOS Safari)上均间歇性复现,且不受网络稳定性、页面加载后等待时长、事件链复杂性等因素影响。
报错原文
# Bug Report: First click after page load / on fresh session sometimes has no effect (fixed by a second click)
- The **first click** on essentially **any** button (including the very first interaction on a completely fresh session, e.g. a login button) sometimes has **no visible effect**.
- A **second click** on the exact same button then works correctly.
- Observed: nothing happens; the page state is unchanged.
- DOM inspection after a "failed" first click: content values inside the column were already updated, but the `hide` class stayed on the column.
原因分析
Issue 维护者确认,此问题与 #13494 相关,并在 #13553 中进行了修复。该修复首次随 Gradio 6.20.0 版本发布,而触发问题的版本 6.19.0 不包含该修复。核心原因是首次点击后,DOM 中的内容值已更新(如文本框标签),但组件的 hide CSS 类未正确移除,导致视觉上无变化。
环境排查
- Gradio 版本:确认是否为
6.19.0 - 部署环境:Hugging Face Spaces(免费/社区 CPU 层),
ssr_mode=False - 浏览器及平台:Chrome (Windows 桌面),Chrome (Android),Safari (iOS)
- 组件依赖:标准的
gr.Blocks()、gr.Button、gr.Column、gr.Textbox、gr.Dropdown等 - 应用模式:未使用自定义 Svelte 组件,无
cancels或.then()链式调用
解决步骤
- 升级 Gradio 版本:将
requirements.txt中的版本从6.19.0更新为6.20.0或更高版本。 - 重新部署到 Hugging Face Spaces(重建并重启应用)。
- 如果升级后问题仍然复现,建议创建一个最小可复现的公共 Space,并提交新 Issue 供维护者排查。
- 排查过程中无需修改
ssr_mode、事件绑定方式或组件结构,因为问题已被定位为 Gradio 框架层面的 BUG。
验证方法
在新的浏览器无痕窗口中打开应用(确保无缓存或上一次会话影响),点击页面上的任意按钮(如登录按钮、切换可见性的按钮),观察首次点击是否立即触发对应回调并更新 UI。如果首次点击正常生效(无需第二次点击),则说明问题已解决。


