File tree Expand file tree Collapse file tree 1 file changed +21
-1
lines changed
packages/renderless/src/form Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -180,7 +180,10 @@ export const validate =
180
180
}
181
181
182
182
if ( typeof callback === 'function' && ++ count === state . fields . length ) {
183
- callback ( valid , invalidFields , invalidFieldArr )
183
+ // 排序
184
+ const sortField = sortFields ( state . fields , invalidFields )
185
+ const sortFieldArr = sortFields ( state . fields , invalidFieldArr )
186
+ callback ( valid , sortField , sortFieldArr )
184
187
}
185
188
} )
186
189
} )
@@ -190,6 +193,23 @@ export const validate =
190
193
}
191
194
}
192
195
196
+ const sortFields = ( fileds , val ) => {
197
+ const arrField = fileds . map ( ( item ) => item . prop )
198
+ if ( Object . prototype . toString . call ( val ) === '[object Object]' ) {
199
+ const keys = Object . keys ( val )
200
+ const sortKeys = keys . sort ( ( a , b ) => arrField . indexOf ( a ) - arrField . indexOf ( b ) )
201
+ const sortedObject = sortKeys . reduce ( ( acc , key ) => {
202
+ acc [ key ] = val [ key ]
203
+ return acc
204
+ } , { } )
205
+ return sortedObject
206
+ }
207
+ if ( Array . isArray ( val ) ) {
208
+ val . sort ( ( x , y ) => arrField . indexOf ( x ) - arrField . indexOf ( y ) )
209
+ return val
210
+ }
211
+ }
212
+
193
213
export const validateField =
194
214
( state : IFormRenderlessParams [ 'state' ] ) =>
195
215
( props , cb ) : void => {
You can’t perform that action at this time.
0 commit comments