52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
| /* eslint react/no-multi-comp:0, no-console:0 */
 | |
| 
 | |
| import { createForm } from '../index';
 | |
| 
 | |
| const Form = {
 | |
|   props: {
 | |
|     form: Object,
 | |
|   },
 | |
| 
 | |
|   beforeMount() {
 | |
|     this.nameDecorator = this.form.getFieldDecorator('name', {
 | |
|       initialValue: '',
 | |
|       rules: [
 | |
|         {
 | |
|           required: true,
 | |
|           message: "What's your name?",
 | |
|         },
 | |
|       ],
 | |
|     });
 | |
|   },
 | |
|   methods: {
 | |
|     onSubmit(e) {
 | |
|       e.preventDefault();
 | |
|       this.form.validateFields((error, values) => {
 | |
|         if (!error) {
 | |
|           console.log('ok', values);
 | |
|         } else {
 | |
|           console.log('error', error, values);
 | |
|         }
 | |
|       });
 | |
|     },
 | |
| 
 | |
|     onChange(e) {
 | |
|       console.log(e.target.value);
 | |
|     },
 | |
|   },
 | |
| 
 | |
|   render() {
 | |
|     const { getFieldError } = this.form;
 | |
| 
 | |
|     return (
 | |
|       <form onSubmit={this.onSubmit}>
 | |
|         {this.nameDecorator(<input onInput={this.onChange} />)}
 | |
|         <div style={{ color: 'red' }}>{(getFieldError('name') || []).join(', ')}</div>
 | |
|         <button>Submit</button>
 | |
|       </form>
 | |
|     );
 | |
|   },
 | |
| };
 | |
| 
 | |
| export default createForm()(Form);
 |