From e29052f107c16493a81e048841a7a9f770a8cece Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Sun, 20 Sep 2026 02:02:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E9=A6=96=E9=A1=B5):=20=E6=9D=A5=E4=BF=A1?= =?UTF-8?q?=E5=8D=A1=E9=BB=98=E8=AE=A4=E6=94=B6=E8=B5=B7=EF=BC=8C=E7=AD=89?= =?UTF-8?q?=20/letters=20=E7=BB=93=E6=9E=9C=E5=86=8D=E5=86=B3=E5=AE=9A?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=20=E2=80=94=E2=80=94=20=E4=BF=AE=E6=8E=89?= =?UTF-8?q?=E3=80=8C=E5=85=88=E5=86=92=E5=87=BA=E6=9D=A5=E5=86=8D=E7=BC=A9?= =?UTF-8?q?=E5=9B=9E=E5=8E=BB=E3=80=8D=E7=9A=84=E9=97=AA=E7=83=81=20(v2609?= =?UTF-8?q?2003)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 现象:从商城切回首页加载 mama-box 时,先渲染出一张「宝宝来信/宝宝回信啦」卡 (用内置样例信 + 本地待投递队列拼的),几百毫秒后 /letters 回来说没有未读, 卡又缩回去,闪一下。 原因:卡在 index.html 里默认可见,pushLatestToHome() 是「先显示、数据回来再决定」; 而首屏渲染远早于 /letters。 改法(反过来:没确定之前一律不显示): - index.html:#homeLetter 默认带 .hide、#homeBody 默认带 .no-letter(首屏按「无卡」排版,不跳) - app.js:新增 lettersResolved 开关;pushLatestToHome() 在未确定、访客态(无 openid)、 或后端明确未建档(pregEmpty)时一律保持收起;applyRemoteLetters 的每条终态 (成功/空列表/接口挂/无身份)与 applyRemoteProfile 的访客分支都置位并重算 - 访客分支顺手补了一次 pushLatestToHome():此前清空 LETTERS 后没人重算, 那张卡会顶着一封已不存在的信留在首页 验证(本地 + 延迟代理四态,浏览器实测): - 有建档 + 0 封信:全程 hidden(修的就是这个) - 有建档 + 1 封未读:接口回来前 hidden → 回来后显示「小汤圆来信」 - 接口全挂:回退内置样例照旧显示(离线行为不变) - 访客(无 openid):hidden --- index.html | 19 +++++++++++++++---- js/app.js | 45 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index e8fc719..862d365 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ 兜爸心选 · 孕育陪伴 - + @@ -121,8 +121,17 @@ -