@@ -726,4 +726,81 @@ describe('Form.Basic', () => {
726
726
wrapper . find ( 'Input' ) . simulate ( 'change' , { event : { target : { value : 'Light' } } } ) ;
727
727
} ) . not . toThrowError ( ) ;
728
728
} ) ;
729
+
730
+ it ( 'setFieldsValue for List should work' , ( ) => {
731
+ const Demo = ( ) => {
732
+ const [ form ] = useForm ( ) ;
733
+
734
+ const handelReset = ( ) => {
735
+ form . setFieldsValue ( {
736
+ users : [ ] ,
737
+ } ) ;
738
+ } ;
739
+
740
+ const initialValues = {
741
+ users : [ { name : '11' } , { name : '22' } ] ,
742
+ } ;
743
+
744
+ return (
745
+ < Form
746
+ form = { form }
747
+ initialValues = { initialValues }
748
+ name = "dynamic_form_nest_item"
749
+ autoComplete = "off"
750
+ >
751
+ < Form . List name = "users" >
752
+ { ( fields , { add, remove } ) => (
753
+ < >
754
+ { fields . map ( ( { key, name, ...restField } ) => (
755
+ < Field
756
+ key = { key }
757
+ { ...restField }
758
+ name = { [ name , 'name' ] }
759
+ rules = { [ { required : true , message : 'Missing name' } ] }
760
+ >
761
+ < Input placeholder = "Name" />
762
+ </ Field >
763
+ ) ) }
764
+ </ >
765
+ ) }
766
+ </ Form . List >
767
+ < Field >
768
+ < button className = "reset-btn" onClick = { handelReset } >
769
+ reset
770
+ </ button >
771
+ </ Field >
772
+ </ Form >
773
+ ) ;
774
+ } ;
775
+
776
+ const wrapper = mount ( < Demo /> ) ;
777
+ expect ( wrapper . find ( 'input' ) . first ( ) . getDOMNode ( ) . value ) . toBe ( '11' ) ;
778
+ wrapper . find ( '.reset-btn' ) . first ( ) . simulate ( 'click' ) ;
779
+ expect ( wrapper . find ( 'input' ) . length ) . toBe ( 0 ) ;
780
+ } ) ;
781
+
782
+ it ( 'setFieldsValue should work for multiple Select' , ( ) => {
783
+ const Select = ( { value, defaultValue } ) => {
784
+ return < div className = "select-div" > { ( value || defaultValue || [ ] ) . toString ( ) } </ div > ;
785
+ } ;
786
+
787
+ const Demo = ( ) => {
788
+ const [ formInstance ] = Form . useForm ( ) ;
789
+
790
+ React . useEffect ( ( ) => {
791
+ formInstance . setFieldsValue ( { selector : [ 'K1' , 'K2' ] } ) ;
792
+ } , [ formInstance ] ) ;
793
+
794
+ return (
795
+ < Form form = { formInstance } >
796
+ < Field initialValue = "K1" name = "selector" >
797
+ < Select />
798
+ </ Field >
799
+ </ Form >
800
+ ) ;
801
+ } ;
802
+
803
+ const wrapper = mount ( < Demo /> ) ;
804
+ expect ( wrapper . find ( '.select-div' ) . text ( ) ) . toBe ( 'K1,K2' ) ;
805
+ } ) ;
729
806
} ) ;
0 commit comments