From 5151775e4fcf9382cae770e8aca557fbf190cb05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=B8=AD=E5=8E=9F?= <5021361+lizhongyuan3@user.noreply.gitee.com> Date: Thu, 15 Oct 2026 03:02:09 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20UserSelect=20Effect?= =?UTF-8?q?=20=E4=BE=9D=E8=B5=96=E5=AF=BC=E8=87=B4=E7=9A=84=E6=97=A0?= =?UTF-8?q?=E9=99=90=E6=9B=B4=E6=96=B0=20###=20=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 进入“工作流 → 流程监控 → 流程实例”时报错: Maximum update depth exceeded。 UserSelect 将 useEffectEvent 返回的 initModal、resetModal 加入了 useEffect 依赖数组。这些函数引用会随渲染变化,Effect 内的状态更新 又触发重新渲染,导致反复重置或初始化。 ### 修改 - Effect 仅依赖 open,在弹窗开关变化时初始化或重置。 - 修正 useEffectEvent 返回引用稳定的错误注释。 ### 验证 - 流程实例页面正常显示。 - 申请人弹窗打开、勾选、取消正常。 - “运行中 / 已完成”切换正常。 - Oxlint、TypeScript 检查通过。 Signed-off-by: 李中原 <5021361+lizhongyuan3@user.noreply.gitee.com> --- src/components/common/UserSelect.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/common/UserSelect.tsx b/src/components/common/UserSelect.tsx index acfe3abd..c8deadbe 100644 --- a/src/components/common/UserSelect.tsx +++ b/src/components/common/UserSelect.tsx @@ -127,9 +127,9 @@ export default function UserSelect({ // useEffectEvent 在 effect 中调用是 React 官方推荐用法 // oxlint-disable-next-line react/set-state-in-effect initModal(); - // initModal/resetModal 为 useEffectEvent 引用稳定 无需作为依赖 + // Effect Event 每次渲染的引用可能变化,不应作为依赖;弹窗初始化和重置只跟随 open // oxlint-disable-next-line react/exhaustive-effect-dependencies - }, [initModal, open, resetModal]); + }, [open]); const handleQuery = async () => { const values = form.getFieldsValue();