From 4ba40fdd106d64a68dddc9885964d63a10e52e3a Mon Sep 17 00:00:00 2001 From: Zeke Zhang <958414905@qq.com> Date: Sun, 14 Jul 2024 13:01:23 +0800 Subject: [PATCH] fix: default values for fields should not be cleared after submission (#4877) --- .../core/client/src/block-provider/FormBlockProvider.tsx | 6 ++++-- .../blocks/data-blocks/form/hooks/useEditFormBlockProps.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/core/client/src/block-provider/FormBlockProvider.tsx b/packages/core/client/src/block-provider/FormBlockProvider.tsx index 639f4c6e45..e6949eafe3 100644 --- a/packages/core/client/src/block-provider/FormBlockProvider.tsx +++ b/packages/core/client/src/block-provider/FormBlockProvider.tsx @@ -151,7 +151,7 @@ export const useFormBlockContext = () => { /** * @internal */ -export const useFormBlockProps = () => { +export const useFormBlockProps = (shouldClearInitialValues = false) => { const ctx = useFormBlockContext(); const treeParentRecord = useTreeParentRecord(); const { fieldSchema } = useActionContext(); @@ -171,7 +171,9 @@ export const useFormBlockProps = () => { if (form) { // form 字段中可能一开始就存在一些默认值(比如设置了字段默认值的模板区块)。在编辑表单中, // 这些默认值是不需要的,需要清除掉,不然会导致一些问题。比如:https://github.com/nocobase/nocobase/issues/4868 - form.initialValues = {}; + if (shouldClearInitialValues) { + form.initialValues = {}; + } form.setInitialValues(ctx.service?.data?.data); } } diff --git a/packages/core/client/src/modules/blocks/data-blocks/form/hooks/useEditFormBlockProps.ts b/packages/core/client/src/modules/blocks/data-blocks/form/hooks/useEditFormBlockProps.ts index b14581d866..b5881055ec 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/form/hooks/useEditFormBlockProps.ts +++ b/packages/core/client/src/modules/blocks/data-blocks/form/hooks/useEditFormBlockProps.ts @@ -10,5 +10,5 @@ import { useFormBlockProps } from '../../../../../block-provider/FormBlockProvider'; export function useEditFormBlockProps() { - return useFormBlockProps(); + return useFormBlockProps(true); }