mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-05 21:49:25 +08:00
fix: refresh association field data after page switching (#6114)
This commit is contained in:
parent
a55e8a8cca
commit
03db13f241
@ -13,7 +13,6 @@ import { ACLCollectionProvider } from '../../acl/ACLProvider';
|
|||||||
import { UseRequestOptions, UseRequestService } from '../../api-client';
|
import { UseRequestOptions, UseRequestService } from '../../api-client';
|
||||||
import { DataBlockCollector, FilterParam } from '../../filter-provider/FilterProvider';
|
import { DataBlockCollector, FilterParam } from '../../filter-provider/FilterProvider';
|
||||||
import { withDynamicSchemaProps } from '../../hoc/withDynamicSchemaProps';
|
import { withDynamicSchemaProps } from '../../hoc/withDynamicSchemaProps';
|
||||||
import { KeepAliveContextCleaner } from '../../route-switch/antd/admin-layout/KeepAlive';
|
|
||||||
import { Designable, useDesignable } from '../../schema-component';
|
import { Designable, useDesignable } from '../../schema-component';
|
||||||
import {
|
import {
|
||||||
AssociationProvider,
|
AssociationProvider,
|
||||||
@ -192,12 +191,9 @@ export const DataBlockProvider: FC<Partial<AllDataBlockProps>> = withDynamicSche
|
|||||||
<ACLCollectionProvider>
|
<ACLCollectionProvider>
|
||||||
<DataBlockResourceProvider>
|
<DataBlockResourceProvider>
|
||||||
<BlockRequestProvider>
|
<BlockRequestProvider>
|
||||||
{/* Must be placed inside BlockRequestProvider because BlockRequestProvider uses KeepAliveContext */}
|
<DataBlockCollector params={props.params}>
|
||||||
<KeepAliveContextCleaner>
|
<RerenderDataBlockProvider>{children}</RerenderDataBlockProvider>
|
||||||
<DataBlockCollector params={props.params}>
|
</DataBlockCollector>
|
||||||
<RerenderDataBlockProvider>{children}</RerenderDataBlockProvider>
|
|
||||||
</DataBlockCollector>
|
|
||||||
</KeepAliveContextCleaner>
|
|
||||||
</BlockRequestProvider>
|
</BlockRequestProvider>
|
||||||
</DataBlockResourceProvider>
|
</DataBlockResourceProvider>
|
||||||
</ACLCollectionProvider>
|
</ACLCollectionProvider>
|
||||||
|
@ -14,6 +14,7 @@ import React, { useEffect, useMemo, useState } from 'react';
|
|||||||
import { useAPIClient, useRequest } from '../../../api-client';
|
import { useAPIClient, useRequest } from '../../../api-client';
|
||||||
import { useCollectionManager } from '../../../data-source/collection';
|
import { useCollectionManager } from '../../../data-source/collection';
|
||||||
import { markRecordAsNew } from '../../../data-source/collection-record/isNewRecord';
|
import { markRecordAsNew } from '../../../data-source/collection-record/isNewRecord';
|
||||||
|
import { useKeepAlive } from '../../../route-switch/antd/admin-layout/KeepAlive';
|
||||||
import { useSchemaComponentContext } from '../../hooks';
|
import { useSchemaComponentContext } from '../../hooks';
|
||||||
import { AssociationFieldContext } from './context';
|
import { AssociationFieldContext } from './context';
|
||||||
|
|
||||||
@ -85,7 +86,13 @@ export const AssociationFieldProvider = observer(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const { active } = useKeepAlive();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (!active) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
if (!collectionField) {
|
if (!collectionField) {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
@ -136,7 +143,7 @@ export const AssociationFieldProvider = observer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}, [currentMode, collectionField, field]);
|
}, [currentMode, collectionField, field, active]);
|
||||||
|
|
||||||
if (loading || rLoading) {
|
if (loading || rLoading) {
|
||||||
return null;
|
return null;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user