Commit af55511bd6e533ab68356aa9038f80f50f53cf26
1 parent
aa596af6
fix(table): table columns setting error
Showing
3 changed files
with
32 additions
and
12 deletions
CHANGELOG.zh_CN.md
src/components/Table/src/hooks/useColumns.ts
1 | 1 | import type { BasicColumn, BasicTableProps, CellFormat, GetColumnsParams } from '../types/table'; |
2 | 2 | import type { PaginationProps } from '../types/pagination'; |
3 | -import { unref, ComputedRef, Ref, computed, watchEffect, ref, toRaw } from 'vue'; | |
3 | +import { unref, ComputedRef, Ref, computed, watch, ref, toRaw } from 'vue'; | |
4 | 4 | import { isBoolean, isArray, isString, isObject } from '/@/utils/is'; |
5 | 5 | import { DEFAULT_ALIGN, PAGE_SIZE, INDEX_COLUMN_FLAG, ACTION_COLUMN_FLAG } from '../const'; |
6 | 6 | import { useI18n } from '/@/hooks/web/useI18n'; |
... | ... | @@ -156,11 +156,22 @@ export function useColumns( |
156 | 156 | return viewColumns; |
157 | 157 | }); |
158 | 158 | |
159 | - watchEffect(() => { | |
160 | - const columns = toRaw(unref(propsRef).columns); | |
161 | - columnsRef.value = columns; | |
162 | - cacheColumns = columns?.filter((item) => !item.flag) ?? []; | |
163 | - }); | |
159 | + watch( | |
160 | + () => unref(propsRef).columns, | |
161 | + (columns) => { | |
162 | + columnsRef.value = columns; | |
163 | + cacheColumns = columns?.filter((item) => !item.flag) ?? []; | |
164 | + } | |
165 | + ); | |
166 | + | |
167 | + // watchEffect(() => { | |
168 | + // const columns = toRaw(unref(propsRef).columns); | |
169 | + // console.log('======================'); | |
170 | + // console.log(111); | |
171 | + // console.log('======================'); | |
172 | + // columnsRef.value = columns; | |
173 | + // cacheColumns = columns?.filter((item) => !item.flag) ?? []; | |
174 | + // }); | |
164 | 175 | |
165 | 176 | /** |
166 | 177 | * set columns | ... | ... |
src/components/Table/src/hooks/useTable.ts
... | ... | @@ -3,11 +3,10 @@ import type { PaginationProps } from '../types/pagination'; |
3 | 3 | import type { DynamicProps } from '/@/types/utils'; |
4 | 4 | import { getDynamicProps } from '/@/utils'; |
5 | 5 | |
6 | -import { ref, onUnmounted, unref } from 'vue'; | |
6 | +import { ref, onUnmounted, unref, watch } from 'vue'; | |
7 | 7 | import { isProdMode } from '/@/utils/env'; |
8 | 8 | import { isInSetup } from '/@/utils/helper/vueHelper'; |
9 | 9 | import { error } from '/@/utils/log'; |
10 | -import { watchEffect } from 'vue'; | |
11 | 10 | import type { FormActionType } from '/@/components/Form'; |
12 | 11 | |
13 | 12 | type Props = Partial<DynamicProps<BasicTableProps>>; |
... | ... | @@ -33,12 +32,18 @@ export function useTable( |
33 | 32 | } |
34 | 33 | tableRef.value = instance; |
35 | 34 | formRef.value = formInstance; |
36 | - // tableProps && instance.setProps(tableProps); | |
35 | + tableProps && instance.setProps(getDynamicProps(tableProps)); | |
37 | 36 | loadedRef.value = true; |
38 | 37 | |
39 | - watchEffect(() => { | |
40 | - tableProps && instance.setProps(getDynamicProps(tableProps)); | |
41 | - }); | |
38 | + watch( | |
39 | + () => tableProps, | |
40 | + () => { | |
41 | + tableProps && instance.setProps(getDynamicProps(tableProps)); | |
42 | + }, | |
43 | + { | |
44 | + immediate: true, | |
45 | + } | |
46 | + ); | |
42 | 47 | } |
43 | 48 | |
44 | 49 | function getTableInstance(): TableActionType { | ... | ... |