-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Expand file tree
/
Copy pathFastField.js
More file actions
68 lines (61 loc) · 1.45 KB
/
FastField.js
File metadata and controls
68 lines (61 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import React from 'react';
import { Formik, FastField, Form } from 'formik';
import { Debug } from './Debug';
class Input extends React.Component {
renders = 0;
render() {
return (
<div>
<input {...this.props} />
<p># of renders: {this.renders++}</p>
</div>
);
}
}
const Basic = () => (
<div>
<h1>Sign Up</h1>
<Formik
initialValues={{
firstName: '',
lastName: '',
email: '',
}}
onSubmit={(values, { setSubmitting }) => {
setTimeout(() => {
setSubmitting(false);
alert(JSON.stringify(values, null, 2));
}, 500);
}}
render={({ isSubmitting }) => (
<Form>
<label htmlFor="firstName">First Name</label>
<FastField
name="firstName"
placeholder="Jane"
as={Input}
disabled={isSubmitting}
/>
<label htmlFor="lastName">Last Name</label>
<FastField
name="lastName"
placeholder="Doe"
as={Input}
disabled={isSubmitting}
/>
<label htmlFor="email">Email</label>
<FastField
name="email"
placeholder="jane@acme.com"
type="email"
as={Input}
disabled={isSubmitting}
/>
<button type="submit">Submit</button>
<Debug />
</Form>
)}
/>
</div>
);
export default Basic;