@nocobase/client-v2 2.1.0-alpha.31 → 2.1.0-alpha.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/form/JsonTextArea.d.ts +18 -0
- package/es/components/index.d.ts +1 -0
- package/es/flow/actions/dateRangeLimit.d.ts +9 -0
- package/es/flow/actions/index.d.ts +2 -1
- package/es/flow/actions/linkageRules.d.ts +2 -0
- package/es/flow/admin-shell/admin-layout/AdminLayoutMenuModels.d.ts +4 -0
- package/es/flow/admin-shell/admin-layout/AdminLayoutModel.d.ts +7 -0
- package/es/flow/admin-shell/admin-layout/resolveAdminRouteRuntimeTarget.d.ts +5 -0
- package/es/flow/models/base/PageModel/PageModel.d.ts +4 -0
- package/es/flow/models/base/PageModel/RootPageModel.d.ts +9 -0
- package/es/flow/models/blocks/form/value-runtime/runtime.d.ts +7 -0
- package/es/flow/models/fields/AssociationFieldModel/SubTableFieldModel/SubTableColumnModel.d.ts +5 -0
- package/es/flow/models/fields/DateTimeFieldModel/dateLimit.d.ts +20 -0
- package/es/flow/models/fields/JSEditableFieldModel.d.ts +4 -0
- package/es/index.mjs +79 -67
- package/lib/index.js +80 -68
- package/package.json +6 -5
- package/src/__tests__/nocobase-buildin-plugin-auth.test.tsx +67 -46
- package/src/__tests__/settings-center.test.tsx +30 -0
- package/src/components/form/JsonTextArea.tsx +129 -0
- package/src/components/index.ts +1 -0
- package/src/flow/__tests__/FlowRoute.test.tsx +4 -5
- package/src/flow/actions/__tests__/actionLinkageRules.race.repro.test.ts +199 -0
- package/src/flow/actions/__tests__/fieldLinkageRules.scopeDepth.test.ts +478 -0
- package/src/flow/actions/__tests__/linkageRules.formValueDrivenRefresh.test.ts +6 -1
- package/src/flow/actions/__tests__/linkageRules.menu.test.ts +90 -0
- package/src/flow/actions/__tests__/pattern.test.ts +190 -0
- package/src/flow/actions/dateRangeLimit.tsx +66 -0
- package/src/flow/actions/index.ts +3 -0
- package/src/flow/actions/linkageRules.tsx +194 -42
- package/src/flow/actions/linkageRulesFormValueRefresh.ts +2 -8
- package/src/flow/actions/openView.tsx +2 -1
- package/src/flow/actions/pattern.tsx +25 -2
- package/src/flow/admin-shell/AdminLayoutRouteCoordinator.ts +7 -1
- package/src/flow/admin-shell/__tests__/AdminLayoutRouteCoordinator.test.ts +117 -0
- package/src/flow/admin-shell/admin-layout/AdminLayoutComponent.tsx +8 -1
- package/src/flow/admin-shell/admin-layout/AdminLayoutMenuModels.tsx +70 -12
- package/src/flow/admin-shell/admin-layout/AdminLayoutMenuUtils.tsx +26 -87
- package/src/flow/admin-shell/admin-layout/AdminLayoutModel.tsx +11 -0
- package/src/flow/admin-shell/admin-layout/AdminLayoutSlotModels.tsx +5 -1
- package/src/flow/admin-shell/admin-layout/__tests__/AdminLayoutMenuModels.test.ts +292 -31
- package/src/flow/admin-shell/admin-layout/resolveAdminRouteRuntimeTarget.test.ts +50 -12
- package/src/flow/admin-shell/admin-layout/resolveAdminRouteRuntimeTarget.ts +77 -56
- package/src/flow/components/AdminLayout.tsx +2 -2
- package/src/flow/components/FlowRoute.tsx +17 -4
- package/src/flow/models/base/PageModel/PageModel.tsx +15 -3
- package/src/flow/models/base/PageModel/RootPageModel.tsx +37 -2
- package/src/flow/models/base/PageModel/__tests__/PageModel.test.ts +73 -0
- package/src/flow/models/base/PageModel/__tests__/RootPageModel.test.ts +116 -0
- package/src/flow/models/blocks/form/value-runtime/__tests__/runtime.test.ts +167 -1
- package/src/flow/models/blocks/form/value-runtime/runtime.ts +103 -11
- package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/PopupSubTableFieldModel.tsx +4 -0
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/SubTableColumnModel.tsx +34 -3
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/SubTableField.tsx +47 -0
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/__tests__/SubTableColumnModel.rowRecord.test.ts +42 -0
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/__tests__/SubTableField.refresh.test.tsx +122 -0
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/index.tsx +6 -1
- package/src/flow/models/fields/ClickableFieldModel.tsx +21 -9
- package/src/flow/models/fields/DateTimeFieldModel/DateOnlyFieldModel.tsx +9 -0
- package/src/flow/models/fields/DateTimeFieldModel/DateTimeFieldModel.tsx +4 -0
- package/src/flow/models/fields/DateTimeFieldModel/DateTimeNoTzFieldModel.tsx +9 -0
- package/src/flow/models/fields/DateTimeFieldModel/DateTimeTzFieldModel.tsx +9 -0
- package/src/flow/models/fields/DateTimeFieldModel/__tests__/DateTimeNoTzFieldModel.dateLimit.test.tsx +242 -0
- package/src/flow/models/fields/DateTimeFieldModel/dateLimit.ts +152 -0
- package/src/flow/models/fields/JSEditableFieldModel.tsx +110 -14
- package/src/flow/models/fields/__tests__/ClickableFieldModel.test.ts +87 -0
- package/src/flow/models/fields/__tests__/JSEditableFieldModel.test.tsx +210 -0
- package/src/flow/system-settings/useSystemSettings.tsx +36 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import type { TextAreaProps } from 'antd/es/input';
|
|
10
|
+
import React from 'react';
|
|
11
|
+
export interface JsonTextAreaProps extends Omit<TextAreaProps, 'value' | 'onChange'> {
|
|
12
|
+
value?: unknown;
|
|
13
|
+
onChange?: (value: unknown) => void;
|
|
14
|
+
space?: number;
|
|
15
|
+
json5?: boolean;
|
|
16
|
+
showError?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const JsonTextArea: React.MemoExoticComponent<(props: JsonTextAreaProps) => React.JSX.Element>;
|
package/es/components/index.d.ts
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
export declare const dateRangeLimit: import("@nocobase/flow-engine").ActionDefinition<import("@nocobase/flow-engine").FlowModel<import("@nocobase/flow-engine").DefaultStructure>, import("@nocobase/flow-engine").FlowContext>;
|
|
@@ -19,6 +19,7 @@ export * from './refreshTargetBlocks';
|
|
|
19
19
|
export * from './setTargetDataScope';
|
|
20
20
|
export { titleField } from './titleField';
|
|
21
21
|
export * from './dateTimeFormat';
|
|
22
|
+
export * from './dateRangeLimit';
|
|
22
23
|
export * from './sortingRules';
|
|
23
24
|
export * from './dataLoadingMode';
|
|
24
25
|
export * from './renderMode';
|
|
@@ -34,7 +35,7 @@ export * from './formAssignRules';
|
|
|
34
35
|
export * from './filterFormDefaultValues';
|
|
35
36
|
export * from './linkageRulesRefresh';
|
|
36
37
|
export * from './blockHeight';
|
|
37
|
-
export { fieldLinkageRules, subFormFieldLinkageRules, detailsFieldLinkageRules, linkageSetDetailsFieldProps, actionLinkageRules, blockLinkageRules, linkageSetBlockProps, linkageSetActionProps, linkageSetFieldProps, subFormLinkageSetFieldProps, linkageAssignField, linkageRunjs, subFormLinkageAssignField, } from './linkageRules';
|
|
38
|
+
export { fieldLinkageRules, subFormFieldLinkageRules, detailsFieldLinkageRules, linkageSetDetailsFieldProps, actionLinkageRules, menuLinkageRules, blockLinkageRules, linkageSetBlockProps, linkageSetActionProps, linkageSetMenuItemProps, linkageSetFieldProps, subFormLinkageSetFieldProps, linkageAssignField, linkageRunjs, subFormLinkageAssignField, } from './linkageRules';
|
|
38
39
|
export { displayFieldComponent } from './displayFieldComponent';
|
|
39
40
|
export * from './overflowMode';
|
|
40
41
|
export * from './numberFormat';
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { FlowContext, FlowModel } from '@nocobase/flow-engine';
|
|
10
10
|
export declare const linkageSetBlockProps: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
11
11
|
export declare const linkageSetActionProps: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
12
|
+
export declare const linkageSetMenuItemProps: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
12
13
|
export declare const linkageSetFieldProps: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
13
14
|
export declare const subFormLinkageSetFieldProps: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
14
15
|
export declare const linkageSetDetailsFieldProps: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
@@ -18,6 +19,7 @@ export declare const setFieldsDefaultValue: import("@nocobase/flow-engine").Acti
|
|
|
18
19
|
export declare const linkageRunjs: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
19
20
|
export declare const blockLinkageRules: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
20
21
|
export declare const actionLinkageRules: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
22
|
+
export declare const menuLinkageRules: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
21
23
|
export declare const fieldLinkageRules: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
22
24
|
export declare const subFormFieldLinkageRules: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
23
25
|
export declare const detailsFieldLinkageRules: import("@nocobase/flow-engine").ActionDefinition<FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
@@ -25,6 +25,8 @@ export declare class AdminLayoutMenuItemModel extends FlowModel<AdminLayoutMenuI
|
|
|
25
25
|
getRouteRepository(): any;
|
|
26
26
|
hasPersistedMenuInstanceFlowFlag(route?: NocoBaseDesktopRoute): boolean;
|
|
27
27
|
getCurrentPersistedInstanceFlowCount(): number;
|
|
28
|
+
hasPersistableMenuLinkageRules(): boolean;
|
|
29
|
+
hasCurrentPersistedMenuState(): boolean;
|
|
28
30
|
buildRouteOptionsWithPersistedFlowFlag(hasPersistedMenuInstanceFlow: boolean): {
|
|
29
31
|
[x: string]: any;
|
|
30
32
|
hasPersistedMenuInstanceFlow?: boolean;
|
|
@@ -43,6 +45,8 @@ export declare class AdminLayoutMenuItemModel extends FlowModel<AdminLayoutMenuI
|
|
|
43
45
|
* @returns {boolean} 是否需要走 FlowModel 默认保存链路
|
|
44
46
|
*/
|
|
45
47
|
hasPersistableInstanceFlows(): boolean;
|
|
48
|
+
setHidden(value: boolean): void;
|
|
49
|
+
protected renderHiddenInConfig(): React.ReactNode | undefined;
|
|
46
50
|
createMenuRoute(route: NocoBaseDesktopRoute, options?: {
|
|
47
51
|
parentId?: string | number;
|
|
48
52
|
refreshAfterMutation?: boolean;
|
|
@@ -37,12 +37,19 @@ type GetAdminLayoutModelOptions<TModel extends FlowModel = AdminLayoutModel> = {
|
|
|
37
37
|
*/
|
|
38
38
|
export declare class AdminLayoutModel extends FlowModel<AdminLayoutStructure> {
|
|
39
39
|
isMobileLayout: boolean;
|
|
40
|
+
menuRouteRefreshVersion: number;
|
|
40
41
|
private routeCoordinator?;
|
|
41
42
|
private routeDisposer?;
|
|
42
43
|
private activePageUid;
|
|
43
44
|
private layoutContentElement;
|
|
44
45
|
private readonly routePageMetaMap;
|
|
45
46
|
constructor(options: any);
|
|
47
|
+
/**
|
|
48
|
+
* 通知 Layout 重新生成 ProLayout 菜单路由。
|
|
49
|
+
*
|
|
50
|
+
* @returns {void}
|
|
51
|
+
*/
|
|
52
|
+
refreshMenuRouteTree(): void;
|
|
46
53
|
/**
|
|
47
54
|
* 注册页面运行时信息。
|
|
48
55
|
*
|
|
@@ -9,10 +9,12 @@
|
|
|
9
9
|
import type { BaseApplication } from '../../../BaseApplication';
|
|
10
10
|
import { type NocoBaseDesktopRoute } from '../../../flow-compat';
|
|
11
11
|
export type AdminRouteNavigationMode = 'spa' | 'document';
|
|
12
|
+
export type AdminRouteRuntimeTargetReason = 'ok' | 'missingSchemaUid' | 'unsupportedV2Runtime' | 'emptyGroup' | 'unsupportedRouteType';
|
|
12
13
|
export type AdminRouteRuntimeTarget = {
|
|
13
14
|
runtimePath: string | null;
|
|
14
15
|
navigationMode: AdminRouteNavigationMode;
|
|
15
16
|
isLegacy: boolean;
|
|
17
|
+
reason: AdminRouteRuntimeTargetReason;
|
|
16
18
|
};
|
|
17
19
|
type LocationLike = {
|
|
18
20
|
pathname: string;
|
|
@@ -30,7 +32,10 @@ type ResolveAdminRouteRuntimeTargetOptions = {
|
|
|
30
32
|
preserveLocationState?: boolean;
|
|
31
33
|
log?: (message?: any, ...optionalParams: any[]) => void;
|
|
32
34
|
};
|
|
35
|
+
export declare function isV2AdminRuntime(app?: ResolveAdminRouteRuntimeTargetOptions['app']): boolean;
|
|
33
36
|
export declare function toRouterNavigationPath(pathname: string, basename?: string): string;
|
|
37
|
+
export declare function isV2MenuRoute(route: NocoBaseDesktopRoute | undefined): boolean;
|
|
38
|
+
export declare function findFirstV2LandingRoute(routes: NocoBaseDesktopRoute[] | undefined): NocoBaseDesktopRoute | undefined;
|
|
34
39
|
export declare function findFirstAccessiblePageRoute(routes: NocoBaseDesktopRoute[] | undefined): NocoBaseDesktopRoute | undefined;
|
|
35
40
|
/**
|
|
36
41
|
* 将 desktop route 解析为实际运行时跳转目标。
|
|
@@ -26,6 +26,10 @@ export declare class PageModel extends FlowModel<PageModelStructure> {
|
|
|
26
26
|
private dirtyRefreshScheduled;
|
|
27
27
|
private unmounted;
|
|
28
28
|
private documentTitleUpdateVersion;
|
|
29
|
+
/**
|
|
30
|
+
* 根页面标签页开关以路由表为准,避免 flow model 里的旧配置覆盖路由管理设置。
|
|
31
|
+
*/
|
|
32
|
+
private getEnableTabs;
|
|
29
33
|
private getActiveTabKey;
|
|
30
34
|
private scheduleActiveLifecycleRefresh;
|
|
31
35
|
onMount(): void;
|
|
@@ -10,6 +10,14 @@ import { DragEndEvent } from '@dnd-kit/core';
|
|
|
10
10
|
import { PageModel } from './PageModel';
|
|
11
11
|
export declare class RootPageModel extends PageModel {
|
|
12
12
|
mounted: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* 打开页面设置前,把标签页开关表单值同步为路由表中的当前状态。
|
|
15
|
+
*/
|
|
16
|
+
private syncPageSettingsEnableTabsFromRoute;
|
|
17
|
+
/**
|
|
18
|
+
* 保存页面设置后立即同步当前页面状态,让标签页显隐无需等路由列表刷新或页面重载。
|
|
19
|
+
*/
|
|
20
|
+
private syncEnableTabsToCurrentPage;
|
|
13
21
|
/**
|
|
14
22
|
* 新建 tab 在首次保存完成前,前端 route 里可能还没有数据库 id。
|
|
15
23
|
* 拖拽前兜底触发一次保存,确保 move 接口拿到真实主键。
|
|
@@ -19,6 +27,7 @@ export declare class RootPageModel extends PageModel {
|
|
|
19
27
|
*/
|
|
20
28
|
private ensurePersistedRouteId;
|
|
21
29
|
onMount(): void;
|
|
30
|
+
openFlowSettings(options?: Parameters<PageModel['openFlowSettings']>[0]): Promise<boolean>;
|
|
22
31
|
saveStepParams(): Promise<void>;
|
|
23
32
|
handleDragEnd(event: DragEndEvent): Promise<void>;
|
|
24
33
|
}
|
|
@@ -46,6 +46,8 @@ export declare class FormValueRuntime {
|
|
|
46
46
|
syncAssignRules(items: FormAssignRuleItem[]): void;
|
|
47
47
|
get formValues(): any;
|
|
48
48
|
getFormValuesSnapshot(): any;
|
|
49
|
+
canApplyDefaultValuePatch(namePath: NamePath, resolved: any): boolean;
|
|
50
|
+
recordDefaultValuePatch(namePath: NamePath, value?: any): void;
|
|
49
51
|
private getFormValueAtPath;
|
|
50
52
|
mount(options?: {
|
|
51
53
|
sync?: boolean;
|
|
@@ -82,6 +84,11 @@ export declare class FormValueRuntime {
|
|
|
82
84
|
private bumpChangeTick;
|
|
83
85
|
private emitFormValuesChange;
|
|
84
86
|
private markExplicit;
|
|
87
|
+
private normalizeObservedNamePath;
|
|
88
|
+
private clearExplicitForDefaultPatch;
|
|
89
|
+
private shouldPreserveDescendantDefaultsOnExplicit;
|
|
90
|
+
private shouldKeepDefaultPathEnabled;
|
|
91
|
+
private shouldKeepDefaultPathValueEnabled;
|
|
85
92
|
private isExplicit;
|
|
86
93
|
private findExplicitHit;
|
|
87
94
|
}
|
package/es/flow/models/fields/AssociationFieldModel/SubTableFieldModel/SubTableColumnModel.d.ts
CHANGED
|
@@ -11,9 +11,13 @@ import { TableColumnProps } from 'antd';
|
|
|
11
11
|
import React from 'react';
|
|
12
12
|
import { SubTableFieldModel } from '.';
|
|
13
13
|
import { FieldModel } from '../../../base/FieldModel';
|
|
14
|
+
export declare const SUB_TABLE_COLUMN_FIELD_COMPONENT_CONTEXT = "subTableColumn";
|
|
15
|
+
export declare function isSubTableColumnFieldComponentContext(ctx: any): boolean;
|
|
14
16
|
export declare function FieldWithoutPermissionPlaceholder({ targetModel }: {
|
|
15
17
|
targetModel: any;
|
|
16
18
|
}): React.JSX.Element;
|
|
19
|
+
export declare function buildRowPathFromFieldIndex(fieldIndex: unknown): Array<string | number> | null;
|
|
20
|
+
export declare function getLatestSubTableRowRecord(form: any, fieldIndex: unknown, fallbackRecord: any): any;
|
|
17
21
|
export interface SubTableColumnModelStructure {
|
|
18
22
|
parent: SubTableFieldModel;
|
|
19
23
|
subModels: {
|
|
@@ -22,6 +26,7 @@ export interface SubTableColumnModelStructure {
|
|
|
22
26
|
}
|
|
23
27
|
export declare class SubTableColumnModel<T extends SubTableColumnModelStructure = SubTableColumnModelStructure> extends EditableItemModel<T> {
|
|
24
28
|
static renderMode: ModelRenderMode;
|
|
29
|
+
static fieldComponentContext: string;
|
|
25
30
|
renderHiddenInConfig(): React.JSX.Element;
|
|
26
31
|
static defineChildren(ctx: FlowModelContext): any;
|
|
27
32
|
get collection(): any;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
type DateLimitProps = {
|
|
10
|
+
_minDate?: any;
|
|
11
|
+
_maxDate?: any;
|
|
12
|
+
currentForm?: any;
|
|
13
|
+
};
|
|
14
|
+
export declare function useDateLimit(props: DateLimitProps): {
|
|
15
|
+
minDate: any;
|
|
16
|
+
maxDate: any;
|
|
17
|
+
disabledDate: any;
|
|
18
|
+
disabledTime: any;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -16,6 +16,10 @@ import { FieldModel } from '../base/FieldModel';
|
|
|
16
16
|
*/
|
|
17
17
|
export declare class JSEditableFieldModel extends FieldModel {
|
|
18
18
|
private _mountedOnce;
|
|
19
|
+
private _pendingJsSettingsApply;
|
|
20
|
+
private _lastAppliedJsSettings?;
|
|
21
|
+
scheduleApplyJsSettings(): void;
|
|
22
|
+
useHooksBeforeRender(): void;
|
|
19
23
|
render(): React.JSX.Element;
|
|
20
24
|
/**
|
|
21
25
|
* 在 CreateForm / 提交后重置等场景下,字段可能被卸载并重新挂载。
|