Skip to content

Commit ea7af03

Browse files
committed
feat: add vc-form demo
1 parent d5dc9ef commit ea7af03

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
/* eslint react/no-multi-comp:0, no-console:0 */
2+
3+
import { createForm } from '../index'
4+
import { regionStyle, errorStyle } from './styles'
5+
6+
const Email = {
7+
props: {
8+
form: Object,
9+
},
10+
render () {
11+
const { getFieldProps, getFieldError, isFieldValidating } = this.form
12+
const errors = getFieldError('email')
13+
return (<div style={ regionStyle }>
14+
<div>email validate onBlur && onChange</div>
15+
<div>
16+
<input {...getFieldProps('email', {
17+
validate: [{
18+
trigger: 'blur',
19+
rules: [{
20+
required: true,
21+
}],
22+
}, {
23+
trigger: ['blur', 'input'],
24+
rules: [{
25+
type: 'email',
26+
message: '错误的 email 格式',
27+
}],
28+
}],
29+
})}
30+
/>
31+
</div>
32+
<div style={errorStyle}>
33+
{errors ? errors.join(',') : null}
34+
</div>
35+
<div style={errorStyle}>
36+
{isFieldValidating('email') ? 'validating' : null}
37+
</div>
38+
</div>)
39+
},
40+
41+
}
42+
43+
const User = {
44+
props: {
45+
form: Object,
46+
},
47+
render () {
48+
const { getFieldProps, getFieldError, isFieldValidating } = this.form
49+
const errors = getFieldError('user')
50+
return (<div style={ regionStyle }>
51+
<div>user validate on submit</div>
52+
<div>
53+
<input {...getFieldProps('user', {
54+
rules: [
55+
{
56+
required: true,
57+
},
58+
{
59+
type: 'string',
60+
min: 5,
61+
},
62+
],
63+
validateTrigger: null,
64+
})}
65+
/>
66+
</div>
67+
<div style={errorStyle}>
68+
{(errors) ? errors.join(',') : null}
69+
</div>
70+
<div style={errorStyle}>
71+
{isFieldValidating('user') ? 'validating' : null}
72+
</div>
73+
</div>)
74+
},
75+
}
76+
77+
const Form = {
78+
props: {
79+
form: Object,
80+
},
81+
methods: {
82+
onSubmit (e) {
83+
e.preventDefault()
84+
this.form.validateFields((error, values) => {
85+
if (!error) {
86+
console.log('ok', values)
87+
} else {
88+
console.log('error', error, values)
89+
}
90+
})
91+
},
92+
},
93+
94+
render () {
95+
const { form } = this
96+
return (<div style={{ margin: '20px' }}>
97+
<h2>use validateTrigger config</h2>
98+
<form onSubmit={this.onSubmit}>
99+
<User form={ form }/>
100+
101+
<Email form={ form }/>
102+
103+
<div style={ regionStyle }>
104+
<button>submit</button>
105+
</div>
106+
</form>
107+
</div>)
108+
},
109+
}
110+
111+
export default createForm()(Form)
112+

0 commit comments

Comments
 (0)