Skip to content

[1288] 修复首次点击登录按钮看不到登录信息 - #4527

Merged
da-liii merged 2 commits into
mainfrom
da/1288/member
Sep 9, 2026
Merged

[1288] 修复首次点击登录按钮看不到登录信息#4527
da-liii merged 2 commits into
mainfrom
da/1288/member

Conversation

@da-liii

@da-liii da-liii commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

问题

标题栏「领取会员」按钮右侧的登录(用户中心)按钮,第一次点击弹出的用户弹窗看不到登录信息(显示「未登录/非会员」占位内容),第二次点击才能看到登录信息。

根因

登录弹窗 LoginDialog 为惰性创建(ensureLoginDialog(),约 100ms 开销,为不拖慢首屏而推迟到首次使用)。fetchUserInfo 的网络回调里顺序反了:先 updateDialogContent(往 nameLabel/accountIdLabel 等标签写用户信息),之后才 ensureLoginDialog() 创建弹窗。

  • 首次点击时标签尚未创建(nullptr),写入被 if (nameLabel) 守卫全部跳过,弹窗只能显示默认占位内容;
  • 第二次点击时弹窗已存在,标签可正常写入,故能显示登录信息。

handleError 分支同构:showNotLoggedInDialog 写错误提示时标签也未创建,首次点击同样丢失「请重新登录」等错误信息。

修复

  • fetchUserInfo 回调成功分支:showDialog 为 true 时先 ensureLoginDialog(),再 updateDialogContent,最后用已创建的 m_loginDialog 显示;
  • handleError:同样先创建弹窗再写内容再显示;
  • 后台刷新路径(showDialog=false)行为不变,仍保持惰性创建优化。

验证

  • xmake b stem 增量编译通过;
  • gf fmt --changed-since=main 无格式问题;
  • 任务文档见 devel/1288.md

@MoonL79 MoonL79 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@da-liii
da-liii merged commit 1d568b5 into main Sep 9, 2026
6 checks passed
@da-liii
da-liii deleted the da/1288/member branch September 9, 2026 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants