diff --git a/packages/effects/plugins/src/vxe-table/use-vxe-grid.ts b/packages/effects/plugins/src/vxe-table/use-vxe-grid.ts index f3321a4b927..d2c44bfb722 100644 --- a/packages/effects/plugins/src/vxe-table/use-vxe-grid.ts +++ b/packages/effects/plugins/src/vxe-table/use-vxe-grid.ts @@ -9,14 +9,16 @@ import VxeGrid from './use-vxe-grid.vue'; export function useVbenVxeGrid(options: VxeGridProps) { // const IS_REACTIVE = isReactive(options); - const api = new VxeGridApi(options); - const extendedApi: ExtendedVxeGridApi = api as ExtendedVxeGridApi; - extendedApi.useStore = (selector) => { - return useStore(api.store, selector); - }; + let extendedApi!: ExtendedVxeGridApi; const Grid = defineComponent( (props: VxeGridProps, { attrs, slots }) => { + const api = new VxeGridApi(options); + extendedApi = api as ExtendedVxeGridApi; + extendedApi.useStore = (selector) => { + return useStore(api.store, selector); + }; + onBeforeUnmount(() => { api.unmount(); });