From 994fe3fa36291e798cdb9e61d2a1404820d571d2 Mon Sep 17 00:00:00 2001 From: ZLY Date: Wed, 14 Jan 2026 17:28:34 +0800 Subject: [PATCH] =?UTF-8?q?pref(ideContainer):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=BA=93=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ideContainer/market.tsx | 40 +++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/src/pages/ideContainer/market.tsx b/src/pages/ideContainer/market.tsx index 680c842..eb79fcc 100644 --- a/src/pages/ideContainer/market.tsx +++ b/src/pages/ideContainer/market.tsx @@ -423,8 +423,19 @@ const Market: React.FC = ({ updateProjectComp }) => { setSearchValue(value); }; - // 从缓存中获取组件列表的信息 - const getCompList = async () => { + // 从缓存中加载组件列表 + const loadCompListFromCache = () => { + const userInfo = JSON.parse(sessionStorage.getItem('userInfo') || '{}'); + const cachedData = sessionStorage.getItem(`compLibs${userInfo.userId}`); + + if (cachedData) { + const componentData = JSON.parse(cachedData); + addInitState(componentData); + } + }; + + // 手动刷新组件列表(重新请求 API) + const refreshCompList = async () => { try { const requests = [ { promise: getMyComponents(), key: 'myLibs' }, @@ -466,10 +477,8 @@ const Market: React.FC = ({ updateProjectComp }) => { res?.data.list.forEach(item => { item['fontCompType'] = 'complex'; }); - // 更新本地存储数据 obj[key] = res?.data.list || null; } - // 给协同组件添加一个后续处理数据时使用的类型 else if (key === 'teamLibs') { res.data.forEach(item => { item.children.forEach(v => { @@ -479,7 +488,6 @@ const Market: React.FC = ({ updateProjectComp }) => { obj[key] = res?.data || null; } else { - // 更新本地存储数据 res.data.forEach(item => { item.children.forEach(v => { v['fontCompType'] = 'normal'; @@ -488,26 +496,32 @@ const Market: React.FC = ({ updateProjectComp }) => { obj[key] = res?.data || null; } } - sessionStorage.setItem(`compLibs${userInfo.userId}`, JSON.stringify(obj)); - const componentData = JSON.parse(sessionStorage.getItem(`compLibs${userInfo.userId}`)); - addInitState(componentData); } catch (error) { console.error(`加载${key}失败:`, error); } } + + // 更新缓存 + sessionStorage.setItem(`compLibs${userInfo.userId}`, JSON.stringify(obj)); + // 更新组件列表状态 + addInitState(obj); + Message.success('组件库刷新成功'); } catch (error) { console.error('更新组件库失败:', error); + Message.error('组件库刷新失败'); } }; - + // 页面初始化时从缓存加载,projectComponentData 变化时更新显示状态 useEffect(() => { - getCompList(); + loadCompListFromCache(); }, []); - // 监听 Redux 中 projectComponentData 的变化,更新组件列表状态 + // 当项目组件数据变化时,更新组件的添加状态 useEffect(() => { - getCompList(); + if (projectComponentData) { + loadCompListFromCache(); + } }, [projectComponentData]); return ( @@ -529,7 +543,7 @@ const Market: React.FC = ({ updateProjectComp }) => {