@@ -66,11 +66,13 @@ export default <T = any, V extends FormValues = FormValues>(
66
66
const [ fields , setFields ] = useState < string [ ] > ( getFields ( true ) ) ;
67
67
68
68
const updateFields = useCallback ( ( ) => {
69
- setFields ( getFields ( ) ) ;
70
- setNodesOrValues ( getState ( "values" ) , {
71
- shouldSetValues : false ,
72
- fields : Object . keys ( fieldArrayRef . current [ name ] . fields ) ,
73
- } ) ;
69
+ if ( fieldArrayRef . current [ name ] ) {
70
+ setFields ( getFields ( ) ) ;
71
+ setNodesOrValues ( getState ( "values" ) , {
72
+ shouldSetValues : false ,
73
+ fields : Object . keys ( fieldArrayRef . current [ name ] . fields ) ,
74
+ } ) ;
75
+ }
74
76
} , [ fieldArrayRef , getFields , getState , name , setNodesOrValues ] ) ;
75
77
76
78
useEffect ( ( ) => {
@@ -106,8 +108,8 @@ export default <T = any, V extends FormValues = FormValues>(
106
108
let state = getState ( ) ;
107
109
108
110
( [ "values" , "touched" , "errors" , "dirty" ] as Keys [ ] ) . forEach ( ( key ) => {
109
- const value = state [ key ] [ name ] ;
110
- const fieldsLength = state . values [ name ] ?. length ;
111
+ const value = get ( state [ key ] , name ) ;
112
+ const fieldsLength = get ( state . values , name ) ?. length ;
111
113
112
114
if (
113
115
key === "values" ||
@@ -117,15 +119,12 @@ export default <T = any, V extends FormValues = FormValues>(
117
119
)
118
120
state = set (
119
121
state ,
120
- key ,
121
- {
122
- ...state [ key ] ,
123
- [ name ] : handler (
124
- Array . isArray ( value ) ? [ ...value ] : [ ] ,
125
- key ,
126
- fieldsLength ? fieldsLength - 1 : 0
127
- ) ,
128
- } ,
122
+ `${ key } .${ name } ` ,
123
+ handler (
124
+ Array . isArray ( value ) ? [ ...value ] : [ ] ,
125
+ key ,
126
+ fieldsLength ? fieldsLength - 1 : 0
127
+ ) ,
129
128
true
130
129
) ;
131
130
} ) ;
0 commit comments