瀏覽代碼

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];