From ef3a5409106b51bb36cd91d6623c163f82fb0b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LeoYuan=20=E8=A2=81=E5=8A=9B=E7=9A=93?= Date: Thu, 20 Oct 2022 16:17:14 +0800 Subject: [PATCH] refactor: debounce leaf rerender, leaf will rerender too many times while creating new prop instance --- packages/renderer-core/src/hoc/leaf.tsx | 4 ++-- packages/renderer-core/tests/setup.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/renderer-core/src/hoc/leaf.tsx b/packages/renderer-core/src/hoc/leaf.tsx index d4fa2afef..e2dbd22d4 100644 --- a/packages/renderer-core/src/hoc/leaf.tsx +++ b/packages/renderer-core/src/hoc/leaf.tsx @@ -386,7 +386,7 @@ export function leafWrapper(Comp: types.IBaseRenderComponent, { /** 监听参数变化 */ initOnPropsChangeEvent(leaf = this.leaf): void { - const dispose = leaf?.onPropChange?.((propChangeInfo: PropChangeOptions) => { + const dispose = leaf?.onPropChange?.(debounce((propChangeInfo: PropChangeOptions) => { const { key, newValue = null, @@ -433,7 +433,7 @@ export function leafWrapper(Comp: types.IBaseRenderComponent, { }); this.judgeMiniUnitRender(); - }); + }, 30)); dispose && this.disposeFunctions.push(dispose); } diff --git a/packages/renderer-core/tests/setup.ts b/packages/renderer-core/tests/setup.ts index fd6fd9e5d..5c72dc71a 100644 --- a/packages/renderer-core/tests/setup.ts +++ b/packages/renderer-core/tests/setup.ts @@ -16,8 +16,8 @@ jest.mock('lodash', () => { return { ...original, - debounce: (fn) => () => fn(), - throttle: (fn) => () => fn(), + debounce: (fn) => (...args: any[]) => fn.apply(this, args), + throttle: (fn) => (...args: any[]) => fn.apply(this, args), } })