Commit 448a4c2809672480f8f635d7cc4661554112598a
1 parent
f62f378f
feat(table): updateTableDataRecord support functional rowKey
Showing
1 changed file
with
8 additions
and
4 deletions
src/components/Table/src/hooks/useDataSource.ts
... | ... | @@ -155,12 +155,16 @@ export function useDataSource( |
155 | 155 | ): Recordable | undefined { |
156 | 156 | if (!dataSourceRef.value || dataSourceRef.value.length == 0) return; |
157 | 157 | const rowKeyName = unref(getRowKey); |
158 | - if (typeof rowKeyName !== 'string') { | |
158 | + if (!rowKeyName) { | |
159 | 159 | return; |
160 | 160 | } |
161 | - const row = dataSourceRef.value.find( | |
162 | - (r) => Reflect.has(r, rowKeyName as string) && r[rowKeyName as string] === rowKey | |
163 | - ); | |
161 | + const row = dataSourceRef.value.find((r) => { | |
162 | + if (typeof rowKeyName === 'function') { | |
163 | + return (rowKeyName(r) as string) === rowKey; | |
164 | + } else { | |
165 | + return Reflect.has(r, rowKeyName) && r[rowKeyName] === rowKey; | |
166 | + } | |
167 | + }); | |
164 | 168 | if (row) { |
165 | 169 | for (const field in row) { |
166 | 170 | if (Reflect.has(record, field)) row[field] = record[field]; | ... | ... |