Commit 6844f69c2068807eb0bd876d30f7b7de447c841a
Committed by
GitHub
1 parent
057b8263
fix: 修复demo中formTable几个空指针报错和selectedRowKeys丢失响应式的问题 (#2386)
Co-authored-by: 王一骅 <wangyihua@yazuishou.com>
Showing
3 changed files
with
9 additions
and
7 deletions
src/components/Table/src/hooks/useCustomRow.ts
... | ... | @@ -40,7 +40,7 @@ export function useCustomRow( |
40 | 40 | function handleClick() { |
41 | 41 | const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef); |
42 | 42 | if (!rowSelection || !clickToRowSelect) return; |
43 | - const keys = getSelectRowKeys(); | |
43 | + const keys = getSelectRowKeys() || []; | |
44 | 44 | const key = getKey(record, rowKey, unref(getAutoCreateKey)); |
45 | 45 | if (!key) return; |
46 | 46 | ... | ... |
src/components/Table/src/hooks/useRowSelection.ts
... | ... | @@ -66,13 +66,13 @@ export function useRowSelection( |
66 | 66 | selectedRowKeysRef.value = rowKeys; |
67 | 67 | const allSelectedRows = findNodeAll( |
68 | 68 | toRaw(unref(tableData)).concat(toRaw(unref(selectedRowRef))), |
69 | - (item) => rowKeys.includes(item[unref(getRowKey) as string]), | |
69 | + (item) => rowKeys?.includes(item[unref(getRowKey) as string]), | |
70 | 70 | { |
71 | 71 | children: propsRef.value.childrenColumnName ?? 'children', |
72 | 72 | }, |
73 | 73 | ); |
74 | 74 | const trueSelectedRows: any[] = []; |
75 | - rowKeys.forEach((key: string) => { | |
75 | + rowKeys?.forEach((key: string) => { | |
76 | 76 | const found = allSelectedRows.find((item) => item[unref(getRowKey) as string] === key); |
77 | 77 | found && trueSelectedRows.push(found); |
78 | 78 | }); | ... | ... |
src/views/demo/table/FormTable.vue
1 | 1 | <template> |
2 | - <BasicTable | |
3 | - @register="registerTable" | |
4 | - :rowSelection="{ type: 'checkbox', selectedRowKeys: checkedKeys, onChange: onSelectChange }" | |
5 | - > | |
2 | + <BasicTable @register="registerTable"> | |
6 | 3 | <template #form-custom> custom-slot </template> |
7 | 4 | <template #headerTop> |
8 | 5 | <a-alert type="info" show-icon> |
... | ... | @@ -44,6 +41,11 @@ |
44 | 41 | tableSetting: { fullScreen: true }, |
45 | 42 | showIndexColumn: false, |
46 | 43 | rowKey: 'id', |
44 | + rowSelection: { | |
45 | + type: 'checkbox', | |
46 | + selectedRowKeys: checkedKeys, | |
47 | + onChange: onSelectChange, | |
48 | + }, | |
47 | 49 | }); |
48 | 50 | |
49 | 51 | function getFormValues() { | ... | ... |