From b955196de4182ae768d7339496a28ed1efddadc2 Mon Sep 17 00:00:00 2001 From: youxingzhi Date: Wed, 31 Jul 2024 15:54:57 +0800 Subject: [PATCH] use compare from MemoComponent first --- packages/react-reconciler/src/beginWork.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-reconciler/src/beginWork.ts b/packages/react-reconciler/src/beginWork.ts index 71b3201..a333f0c 100644 --- a/packages/react-reconciler/src/beginWork.ts +++ b/packages/react-reconciler/src/beginWork.ts @@ -140,8 +140,9 @@ function updateMemoComponent(wip: FiberNode, renderLane: Lane) { // state context if (!checkScheduledUpdateOrContext(current, renderLane)) { - // 浅比较props - if (shallowEqual(prevProps, nextProps) && current.ref === wip.ref) { + const compare = + wip.type.compare !== null ? wip.type.compare : shallowEqual; + if (compare(prevProps, nextProps) && current.ref === wip.ref) { didReceiveUpdate = false; wip.pendingProps = prevProps;