1
1
/* eslint-disable no-console */
2
- import React from 'react' ;
2
+ import React , { useEffect } from 'react' ;
3
3
import { Form2 , FormInput2 , FormSelect2 , FormSwitch2 , useFormControl2 } from '../dist/main' ;
4
4
5
5
export function Form2Examples ( ) {
@@ -10,24 +10,28 @@ export function Form2Examples() {
10
10
initialValues = { { attrA : 'ABC' , Obj : { x : 'X' } , arr : [ 1 , 2 , 3 ] , arrObj : [ { o : 1 } , { o : 2 } , { o : 3 } ] } }
11
11
onSubmit = { console . info . bind ( console , 'onSubmit' ) }
12
12
onChange = { console . info . bind ( console , 'onChange' ) }
13
- transform = { ( formData ) => ( {
14
- __v : formData . __v ? formData . __v + 1 : 1 ,
15
- attrB : `${ formData . attrB || '' } A` ,
16
- Obj : {
17
- y : `${ formData . Obj . y || '' } X` ,
18
- w : {
19
- z : formData . __v ? formData . __v * 2 : 1 ,
13
+ transform = { ( formData ) => {
14
+ console . log ( 'transform' , formData ) ;
15
+
16
+ return {
17
+ __v : formData . __v ? formData . __v + 1 : 1 ,
18
+ attrB : `${ formData . attrB || '' } A` ,
19
+ Obj : {
20
+ y : `${ formData . Obj . y || '' } X` ,
21
+ w : {
22
+ z : formData . __v ? formData . __v * 2 : 1 ,
23
+ } ,
24
+ t : formData . __v % 2 ? null : undefined ,
25
+ u : new Date ( ) ,
20
26
} ,
21
- t : formData . __v % 2 ? null : undefined ,
22
- u : new Date ( ) ,
23
- } ,
24
- arr : formData . arr . map ( ( v ) => parseFloat ( v ) + 1 ) ,
25
- arrObj : formData . arrObj . map ( ( v ) => {
26
- v . o = parseFloat ( v . o ) ** 2 ;
27
+ arr : formData . arr . map ( ( v ) => parseFloat ( v ) + 1 ) ,
28
+ arrObj : formData . arrObj . map ( ( v ) => {
29
+ v . o = parseFloat ( v . o ) ** 2 ;
27
30
28
- return v ;
29
- } ) ,
30
- } ) }
31
+ return v ;
32
+ } ) ,
33
+ } ;
34
+ } }
31
35
>
32
36
< div className = "form-group" >
33
37
< label htmlFor = "" > Obj</ label >
@@ -81,7 +85,15 @@ function FormVersion() {
81
85
}
82
86
83
87
function FormArray ( ) {
84
- const { getValue } = useFormControl2 ( 'arr' ) ;
88
+ const { getValue, setValue } = useFormControl2 ( 'arr' ) ;
89
+
90
+ useEffect ( ( ) => {
91
+ setValue ( ( prev ) => {
92
+ console . log ( 'useEffect.setValue [arr] :>> ' , prev , getValue ( ) ) ;
93
+
94
+ return prev ;
95
+ } ) ;
96
+ } , [ getValue , setValue ] ) ;
85
97
86
98
return ( getValue ( ) || [ ] ) . map ( ( v , index ) => < FormInput2 key = { index } name = { `arr[${ index } ]` } /> ) ;
87
99
}
0 commit comments