@@ -19,32 +19,29 @@ export default class Form extends React.Component {
1919 path2obj : PropTypes . bool ,
2020 defaultFormValue : PropTypes . object ,
2121 getDefaultFieldValue : PropTypes . func ,
22+ renderFieldExtra : PropTypes . func ,
2223 formValue : PropTypes . object ,
2324 validators : PropTypes . object ,
2425 validateDelay : PropTypes . number ,
2526 validateTrigger : PropTypes . string , //change blur none
27+ asyncTestDelay : PropTypes . number ,
2628 component : PropTypes . node ,
27- rules : PropTypes . oneOfType ( [
28- PropTypes . object ,
29- PropTypes . array ,
30- PropTypes . func
31- ] ) ,
3229 labelWidth : PropTypes . oneOfType ( [ PropTypes . string , PropTypes . number ] ) ,
30+ labelStyle : PropTypes . object ,
3331 labelPosition : PropTypes . oneOf ( [ "top" , "left" ] ) ,
3432 alignItems : PropTypes . oneOf ( [ "top" , "center" , "bottom" ] ) ,
33+ clearErrorOnFocus : PropTypes . bool ,
3534 inline : PropTypes . bool ,
3635 onSubmit : PropTypes . func ,
3736 onChange : PropTypes . func ,
3837 validateFieldsAndScroll : PropTypes . bool ,
39- showMessage : PropTypes . bool ,
4038 getInputProps : PropTypes . func
4139 } ;
4240
4341 static defaultProps = {
4442 prefixCls : "nex-form" ,
4543 className : "" ,
4644 style : { } ,
47- rules : { } ,
4845 validators : { } ,
4946 path2obj : true ,
5047 component : "form" ,
@@ -54,7 +51,7 @@ export default class Form extends React.Component {
5451 labelPosition : "left" ,
5552 alignItems : "center" ,
5653 inline : false ,
57- showMessage : true
54+ clearErrorOnFocus : true
5855 } ;
5956
6057 static getDerivedStateFromProps ( nextProps , prevState ) {
@@ -64,7 +61,7 @@ export default class Form extends React.Component {
6461 }
6562
6663 fields = [ ] ;
67- _valiateCb = [ ] ;
64+ _validateCb = [ ] ;
6865
6966 state = {
7067 formError : { } ,
@@ -102,7 +99,7 @@ export default class Form extends React.Component {
10299 setValue ( name , value , cb ) {
103100 const { path2obj, onChange } = this . props ;
104101 const formValue = this . state . formValue ;
105- const defer = deferred ( ) ;
102+ // const defer = deferred();
106103
107104 // TODO: 后面再考虑下特殊场景
108105 const nextFormValue = {
@@ -126,19 +123,19 @@ export default class Form extends React.Component {
126123 }
127124
128125 if ( cb ) {
129- this . _valiateCb . push ( formValue => {
126+ this . _validateCb . push ( formValue => {
130127 cb ( formValue ) ;
131- defer . resolve ( ) ;
128+ // defer.resolve(formValue );
132129 } ) ;
133130 }
134131
135- return defer . promise ;
132+ // return defer.promise;
136133 }
137134
138135 setValues ( obj = { } , cb ) {
139136 const { path2obj, onChange } = this . props ;
140137 const formValue = this . state . formValue ;
141- const defer = deferred ( ) ;
138+ // const defer = deferred();
142139
143140 const nextFormValue = {
144141 ...formValue
@@ -164,26 +161,26 @@ export default class Form extends React.Component {
164161 }
165162
166163 if ( cb ) {
167- this . _valiateCb . push ( formValue => {
164+ this . _validateCb . push ( formValue => {
168165 cb ( formValue ) ;
169- defer . resolve ( ) ;
166+ // defer.resolve(formValue );
170167 } ) ;
171168 }
172169
173- return defer . promise ;
170+ // return defer.promise;
174171 }
175172
176173 componentDidUpdate ( ) {
177174 const formValue = this . state . formValue ;
178- const validateProcess = this . _valiateCb ;
179- this . _valiateCb = [ ] ;
175+ const validateProcess = this . _validateCb ;
176+ this . _validateCb = [ ] ;
180177 validateProcess . forEach ( cb => {
181178 cb ( formValue ) ;
182179 } ) ;
183180 }
184181
185182 componentWillUnmount ( ) {
186- this . _valiateCb = [ ] ;
183+ this . _validateCb = [ ] ;
187184 }
188185
189186 hasError ( name ) {
@@ -197,6 +194,26 @@ export default class Form extends React.Component {
197194 return formError [ name ] ;
198195 }
199196
197+ cleanError ( name ) {
198+ const { formError } = this . state ;
199+ this . setState ( {
200+ formError : {
201+ ...formError ,
202+ [ name ] : null
203+ }
204+ } ) ;
205+ }
206+
207+ setError ( name , message ) {
208+ const { formError } = this . state ;
209+ this . setState ( {
210+ formError : {
211+ ...formError ,
212+ [ name ] : message
213+ }
214+ } ) ;
215+ }
216+
200217 cleanErrors ( ) {
201218 this . setState ( {
202219 formError : { }
@@ -245,11 +262,16 @@ export default class Form extends React.Component {
245262 return fieldValidators . filter ( v => typeof v === "function" ) ;
246263 }
247264
248- isValidatingField ( name ) {
265+ isFieldValidating ( name ) {
249266 const validatingFields = this . state . validatingFields ;
250267 return ! ! validatingFields [ name ] ;
251268 }
252269
270+ isValidating ( ) {
271+ const validatingFields = this . state . validatingFields ;
272+ return Object . keys ( validatingFields ) . some ( key => validatingFields [ key ] ) ;
273+ }
274+
253275 _validateField ( name , callback ) {
254276 callback = typeof callback === "function" ? callback : noop ;
255277
@@ -470,16 +492,8 @@ export default class Form extends React.Component {
470492 } ) ;
471493 }
472494
473- onFieldChange ( name , value ) {
474- const { formValue } = this . state ;
475-
476- formValue . set ( name , value ) ;
477- }
478-
479495 getFormContext ( ) {
480- return {
481- form : this
482- } ;
496+ return Object . create ( this ) ;
483497 }
484498
485499 render ( ) {
0 commit comments