11import React from "react" ;
22import { FormViewProps } from "@coding-form/form-types" ;
3- import { FormInstance , FormInstanceContext } from "@coding-form/form-presenter" ;
3+ import { FormContext , FormInstance , FormValidate } from "@coding-form/form-presenter" ;
44import { Form } from "antd-mobile" ;
55import { FormItemProps } from "@/types/item" ;
66import { FormFactory } from "@/factory" ;
@@ -9,11 +9,12 @@ export const FormAntdView: React.FC<FormViewProps> = (props) => {
99
1010 const [ form ] = Form . useForm ( ) ;
1111
12- const instance = React . useMemo ( ( ) => {
13- if ( props . form ) {
14- return props . form as FormInstance ;
15- } else {
16- return new FormInstance ( form ) ;
12+ const context = React . useMemo ( ( ) => {
13+ const instance = props . form ? props . form as FormInstance : new FormInstance ( form ) ;
14+
15+ return {
16+ instance,
17+ validate : new FormValidate ( props . validators || [ ] , instance ) ,
1718 }
1819 } , [ props . form ] ) ;
1920
@@ -22,9 +23,9 @@ export const FormAntdView: React.FC<FormViewProps> = (props) => {
2223 const review = props . review || false ;
2324
2425 return (
25- < FormInstanceContext . Provider value = { instance } >
26+ < FormContext . Provider value = { context } >
2627 < Form
27- form = { instance . getProxyTarget ( ) }
28+ form = { form }
2829 >
2930 { fields . map ( field => {
3031
@@ -41,6 +42,6 @@ export const FormAntdView: React.FC<FormViewProps> = (props) => {
4142 }
4243 } ) }
4344 </ Form >
44- </ FormInstanceContext . Provider >
45+ </ FormContext . Provider >
4546 )
4647}
0 commit comments