diff --git a/packages/render-vue/src/props.ts b/packages/render-vue/src/props.ts index 27e0f9f..e1aef37 100644 --- a/packages/render-vue/src/props.ts +++ b/packages/render-vue/src/props.ts @@ -84,7 +84,7 @@ export interface CustomProps extends BaseProps { /** 自定义的渲染函数 */ render?: CustomRenderFunction; /** 更新绑定,当数组中的任意一项更新时将会自动更新此元素的渲染 */ - bindings?: Ref[]; + bindings?: readonly unknown[]; } export interface ContainerProps extends BaseProps {} diff --git a/packages/render/src/core/custom.ts b/packages/render/src/core/custom.ts index 4401636..17ae9cd 100644 --- a/packages/render/src/core/custom.ts +++ b/packages/render/src/core/custom.ts @@ -1,7 +1,6 @@ import { RenderItem } from './item'; import { MotaOffscreenCanvas2D } from './canvas2d'; import { CustomRenderFunction } from './types'; -import { Ref } from 'vue'; export class CustomRenderItem extends RenderItem { renderFn: CustomRenderFunction; @@ -29,7 +28,7 @@ export class CustomRenderItem extends RenderItem { protected handleProps( key: string, - prevValue: any, + _prevValue: any, nextValue: any ): boolean { switch (key) { @@ -39,20 +38,7 @@ export class CustomRenderItem extends RenderItem { return true; case 'bindings': if (!this.assertType(nextValue, Array, key)) return false; - if (nextValue !== prevValue) { - this.update(); - } else if (nextValue.length !== prevValue.length) { - this.update(); - } else { - const arr: Ref[] = nextValue as Ref[]; - const prev: Ref[] = prevValue as Ref[]; - for (let i = 0; i < nextValue.length; i++) { - if (arr[i].value !== prev[i].value) { - this.update(); - break; - } - } - } + this.update(); return true; } return false;