From b7db20263210589797f383a333f4bce8c51b5f30 Mon Sep 17 00:00:00 2001 From: jacy-dukang Date: Sun, 12 Jul 2026 17:29:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=90=88=E4=BC=99=E4=BA=BA?= =?UTF-8?q?=E7=AB=AF=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/OssUploadField.tsx | 20 +++++++++++-------- apps/h5-partner/src/pages/StoreCreatePage.tsx | 12 +++++++---- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/apps/h5-partner/src/components/OssUploadField.tsx b/apps/h5-partner/src/components/OssUploadField.tsx index 2e12feb..a958ba2 100644 --- a/apps/h5-partner/src/components/OssUploadField.tsx +++ b/apps/h5-partner/src/components/OssUploadField.tsx @@ -73,19 +73,23 @@ export default function OssUploadField({ const useWechatPicker = inWechat && (mediaType === 'IMAGE' || (mediaType === 'FILE' && acceptsImages(resolvedAccept))); const needsAuth = useWechatPicker && needsWechatAuth(profile, clientConfig) && wechatReady !== true; + const onWechatReadyChangeRef = useRef(onWechatReadyChange); + onWechatReadyChangeRef.current = onWechatReadyChange; useEffect(() => { if (!useWechatPicker) return; - void Promise.all([fetchPartnerProfile(), fetchClientConfig()]) - .then(([me, config]) => { - setProfile(me); - setClientConfig(config); - onWechatReadyChange?.(!!me.hasWechat); - }) + void fetchClientConfig() + .then(setClientConfig) .catch(() => { /* 未登录等场景由上传接口报错 */ }); - }, [useWechatPicker, onWechatReadyChange]); + if (wechatReady === true) return; + void fetchPartnerProfile() + .then(setProfile) + .catch(() => { + /* 未登录等场景由上传接口报错 */ + }); + }, [useWechatPicker, wechatReady]); useEffect(() => { if (!useWechatPicker || needsAuth) return; @@ -122,7 +126,7 @@ export default function OssUploadField({ if (result) { const me = await fetchPartnerProfile(); setProfile(me); - onWechatReadyChange?.(!!me.hasWechat); + if (me.hasWechat) onWechatReadyChangeRef.current?.(true); } } catch (e) { const text = e instanceof Error ? e.message : '微信授权失败'; diff --git a/apps/h5-partner/src/pages/StoreCreatePage.tsx b/apps/h5-partner/src/pages/StoreCreatePage.tsx index 661fa7c..dfc4209 100644 --- a/apps/h5-partner/src/pages/StoreCreatePage.tsx +++ b/apps/h5-partner/src/pages/StoreCreatePage.tsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useState } from 'react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; @@ -86,6 +86,10 @@ export default function StoreCreatePage() { const wechatReady = !!account?.hasWechat; + const handleWechatReadyChange = useCallback(() => { + void refresh(); + }, [refresh]); + const [params, setParams] = useSearchParams(); const saved = loadStoreDraft(accountId); @@ -717,7 +721,7 @@ export default function StoreCreatePage() { wechatReady={wechatReady} - onWechatReadyChange={() => { void refresh(); }} + onWechatReadyChange={handleWechatReadyChange} onChange={(coverUrl) => patchForm({ coverUrl })} @@ -753,7 +757,7 @@ export default function StoreCreatePage() { wechatReady={wechatReady} - onWechatReadyChange={() => { void refresh(); }} + onWechatReadyChange={handleWechatReadyChange} onChange={(nextUrl) => patchEnvPhotoUrl(index, nextUrl)} @@ -785,7 +789,7 @@ export default function StoreCreatePage() { wechatReady={wechatReady} - onWechatReadyChange={() => { void refresh(); }} + onWechatReadyChange={handleWechatReadyChange} onChange={(contractUrl) => patchForm({ contractUrl })}