File tree 2 files changed +42
-0
lines changed
2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -285,3 +285,44 @@ test('fault tolerance', () => {
285
285
expect ( field . display ) . toEqual ( 'visible' )
286
286
expect ( field . pattern ) . toEqual ( 'editable' )
287
287
} )
288
+
289
+ test ( 'child field reactions' , ( ) => {
290
+ const form = attach ( createForm ( ) )
291
+ const voidField = attach ( form . createVoidField ( { name : 'void' } ) )
292
+ const field1 = attach (
293
+ form . createField ( {
294
+ name : 'field1' ,
295
+ basePath : voidField . address ,
296
+ reactions : [
297
+ ( field ) => {
298
+ field . value = field . query ( 'field3' ) . getIn ( 'value' )
299
+ } ,
300
+ ] ,
301
+ } )
302
+ )
303
+ const field2 = attach (
304
+ form . createField ( {
305
+ name : 'field2' ,
306
+ basePath : voidField . address ,
307
+ reactions : [
308
+ ( field ) => {
309
+ field . value = field . query ( '.field3' ) . getIn ( 'value' )
310
+ } ,
311
+ ] ,
312
+ } )
313
+ )
314
+ expect ( field1 . value ) . toBeUndefined ( )
315
+ expect ( field2 . value ) . toBeUndefined ( )
316
+ const field3 = attach (
317
+ form . createField ( {
318
+ name : 'field3' ,
319
+ basePath : voidField . address ,
320
+ value : 1 ,
321
+ } )
322
+ )
323
+ expect ( field1 . value ) . toBe ( 1 )
324
+ expect ( field2 . value ) . toBe ( 1 )
325
+ field3 . value = 2
326
+ expect ( field1 . value ) . toBe ( 2 )
327
+ expect ( field2 . value ) . toBe ( 2 )
328
+ } )
Original file line number Diff line number Diff line change @@ -122,6 +122,7 @@ export class Form<ValueType extends object = any> {
122
122
protected makeObservable ( ) {
123
123
define ( this , {
124
124
fields : observable . shallow ,
125
+ indexes : observable . shallow ,
125
126
initialized : observable . ref ,
126
127
validating : observable . ref ,
127
128
submitting : observable . ref ,
You can’t perform that action at this time.
0 commit comments