Преглед на файлове

feat(table): updateTableDataRecord support functional rowKey

无木 преди 3 години
родител
ревизия
448a4c2809
променени са 1 файла, в които са добавени 8 реда и са изтрити 4 реда
  1. 8 4
      src/components/Table/src/hooks/useDataSource.ts

+ 8 - 4
src/components/Table/src/hooks/useDataSource.ts

@@ -155,12 +155,16 @@ export function useDataSource(
   ): Recordable | undefined {
     if (!dataSourceRef.value || dataSourceRef.value.length == 0) return;
     const rowKeyName = unref(getRowKey);
-    if (typeof rowKeyName !== 'string') {
+    if (!rowKeyName) {
       return;
     }
-    const row = dataSourceRef.value.find(
-      (r) => Reflect.has(r, rowKeyName as string) && r[rowKeyName as string] === rowKey
-    );
+    const row = dataSourceRef.value.find((r) => {
+      if (typeof rowKeyName === 'function') {
+        return (rowKeyName(r) as string) === rowKey;
+      } else {
+        return Reflect.has(r, rowKeyName) && r[rowKeyName] === rowKey;
+      }
+    });
     if (row) {
       for (const field in row) {
         if (Reflect.has(record, field)) row[field] = record[field];