Skip to content

Commit 09a597f

Browse files
committed
feat(antd/next): support 16427form scope with Form
1 parent cad37da commit 09a597f

File tree

2 files changed

+44
-30
lines changed

2 files changed

+44
-30
lines changed

packages/antd/src/form/index.tsx

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import React from 'react'
22
import { Form as FormType, IFormFeedback } from '@formily/core'
3-
import { useForm, FormProvider, JSXComponent } from '@formily/react'
3+
import {
4+
useForm,
5+
FormProvider,
6+
ExpressionScope,
7+
JSXComponent,
8+
} from '@formily/react'
49
import { FormLayout, IFormLayoutProps } from '../form-layout'
510
import { PreviewText } from '../preview-text'
611
export interface FormProps extends IFormLayoutProps {
@@ -21,21 +26,23 @@ export const Form: React.FC<FormProps> = ({
2126
}) => {
2227
const top = useForm()
2328
const renderContent = (form: FormType) => (
24-
<PreviewText.Placeholder value={previewTextPlaceholder}>
25-
<FormLayout {...props}>
26-
{React.createElement(
27-
component,
28-
{
29-
onSubmit(e: React.FormEvent) {
30-
e?.stopPropagation?.()
31-
e?.preventDefault?.()
32-
form.submit(onAutoSubmit).catch(onAutoSubmitFailed)
29+
<ExpressionScope value={{ $$form: form }}>
30+
<PreviewText.Placeholder value={previewTextPlaceholder}>
31+
<FormLayout {...props}>
32+
{React.createElement(
33+
component,
34+
{
35+
onSubmit(e: React.FormEvent) {
36+
e?.stopPropagation?.()
37+
e?.preventDefault?.()
38+
form.submit(onAutoSubmit).catch(onAutoSubmitFailed)
39+
},
3340
},
34-
},
35-
props.children
36-
)}
37-
</FormLayout>
38-
</PreviewText.Placeholder>
41+
props.children
42+
)}
43+
</FormLayout>
44+
</PreviewText.Placeholder>
45+
</ExpressionScope>
3946
)
4047
if (form)
4148
return <FormProvider form={form}>{renderContent(form)}</FormProvider>

packages/next/src/form/index.tsx

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import React, { useMemo } from 'react'
2-
import { FormProvider, JSXComponent, useForm } from '@formily/react'
2+
import {
3+
FormProvider,
4+
ExpressionScope,
5+
JSXComponent,
6+
useForm,
7+
} from '@formily/react'
38
import { FormLayout, IFormLayoutProps } from '../form-layout'
49
import { ConfigProvider } from '@alifd/next'
510
import {
@@ -34,21 +39,23 @@ export const Form: React.FC<FormProps> = ({
3439
}, [lang])
3540

3641
const renderContent = (form: FormType) => (
37-
<PreviewText.Placeholder value={previewTextPlaceholder}>
38-
<FormLayout {...props}>
39-
{React.createElement(
40-
component,
41-
{
42-
onSubmit(e: React.FormEvent) {
43-
e?.stopPropagation?.()
44-
e?.preventDefault?.()
45-
form.submit(onAutoSubmit).catch(onAutoSubmitFailed)
42+
<ExpressionScope value={{ $$form: form }}>
43+
<PreviewText.Placeholder value={previewTextPlaceholder}>
44+
<FormLayout {...props}>
45+
{React.createElement(
46+
component,
47+
{
48+
onSubmit(e: React.FormEvent) {
49+
e?.stopPropagation?.()
50+
e?.preventDefault?.()
51+
form.submit(onAutoSubmit).catch(onAutoSubmitFailed)
52+
},
4653
},
47-
},
48-
props.children
49-
)}
50-
</FormLayout>
51-
</PreviewText.Placeholder>
54+
props.children
55+
)}
56+
</FormLayout>
57+
</PreviewText.Placeholder>
58+
</ExpressionScope>
5259
)
5360

5461
if (form)

0 commit comments

Comments
 (0)