解决合伙人端上传图片循环调用接口的问题
This commit is contained in:
@@ -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 : '微信授权失败';
|
||||
|
||||
Reference in New Issue
Block a user