diff --git a/packages/core/client/src/block-provider/FormBlockProvider.tsx b/packages/core/client/src/block-provider/FormBlockProvider.tsx index 4f995aea34..639f4c6e45 100644 --- a/packages/core/client/src/block-provider/FormBlockProvider.tsx +++ b/packages/core/client/src/block-provider/FormBlockProvider.tsx @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { createForm } from '@formily/core'; +import { createForm, Form } from '@formily/core'; import { Schema, useField } from '@formily/react'; import { Spin } from 'antd'; import React, { createContext, useContext, useEffect, useMemo, useRef } from 'react'; @@ -167,7 +167,13 @@ export const useFormBlockProps = () => { useEffect(() => { if (!ctx?.service?.loading) { - ctx.form?.setInitialValues(ctx.service?.data?.data); + const form: Form = ctx.form; + if (form) { + // form 字段中可能一开始就存在一些默认值(比如设置了字段默认值的模板区块)。在编辑表单中, + // 这些默认值是不需要的,需要清除掉,不然会导致一些问题。比如:https://github.com/nocobase/nocobase/issues/4868 + form.initialValues = {}; + form.setInitialValues(ctx.service?.data?.data); + } } }, [ctx?.service?.loading]); return {