fix(useDataSource): state mutations in computed getters should be avoided (#3859)

* fix: state mutations in computed getters should be avoided

* fix: type about getDataSourceRef
This commit is contained in:
xachary 2024-05-23 08:20:41 +08:00 committed by GitHub
parent cfdb09fe5b
commit fee808198e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -114,10 +114,14 @@ export function useDataSource(
return unref(getAutoCreateKey) ? ROW_KEY : rowKey; return unref(getAutoCreateKey) ? ROW_KEY : rowKey;
}); });
const getDataSourceRef = computed(() => { const getDataSourceRef: Ref<Recordable<any>[]> = ref([]);
watch(
() => dataSourceRef.value,
() => {
const dataSource = unref(dataSourceRef); const dataSource = unref(dataSourceRef);
if (!dataSource || dataSource.length === 0) { if (!dataSource || dataSource.length === 0) {
return unref(dataSourceRef); getDataSourceRef.value = unref(dataSourceRef);
} }
if (unref(getAutoCreateKey)) { if (unref(getAutoCreateKey)) {
const firstItem = dataSource[0]; const firstItem = dataSource[0];
@ -138,8 +142,12 @@ export function useDataSource(
} }
} }
} }
return unref(dataSourceRef); getDataSourceRef.value = unref(dataSourceRef);
}); },
{
deep: true,
},
);
async function updateTableData(index: number, key: Key, value: any) { async function updateTableData(index: number, key: Key, value: any) {
const record = dataSourceRef.value[index]; const record = dataSourceRef.value[index];
@ -351,7 +359,7 @@ export function useDataSource(
}); });
return { return {
getDataSourceRef, getDataSourceRef: computed(() => getDataSourceRef.value),
getDataSource, getDataSource,
getRawDataSource, getRawDataSource,
searchInfoRef, searchInfoRef,