Comments (5)
Short version:
import * as React from 'react'
import { Formik, InjectedFormikProps } from 'formik'
import Yup from 'yup'
interface Props {
...
}
interface Values {
...
}
interface Payload {
...
}
export const MyInnerForm: React.SFC<InjectedFormikProps<Props, Values>> = (props) => (...)
export default Formik<Props, Values, Payload>({
displayName: 'MyInnerForm',
validationSchema: Yup.object().shape({...}),
// you don't need to explicitly type the mapPropsToValues, mapValuesToPayload, and handleSubmit because their types are inferred
mapPropsToValues: (props: Props) => ({...}),
mapValuesToPayload: (values: Values) => ({..}),
handleSubmit: (payload: Payload, formikBag: FormikBag<Props, Values>) => {
// formikBag contains all the setters and props
})(MyInnerForm)
Here is the same thing, but with more semantic naming of the generics:
...
interface PropsThatWillBePassedToTheWrappedComponent {
...
}
interface ShapeOfWhatMapPropsToValuesReturns {
// this should be the state of what will be injected as`props,values`
}
interface ShapeOfWhatMapValuesToPayloadReturn {
// shape of the payload (i.e. what get's passed as first argument of handleSubmit
}
export const MyInnerForm: React.SFC<InjectedFormikProps<PropsThatWillBePassedToTheWrappedComponent, ShapeOfWhatMapPropsToValuesReturns>> = (props) => (...)
export default Formik<PropsThatWillBePassedToTheWrappedComponent, ShapeOfWhatMapValuesToPropsReturns, ShapeOfWhatMapValuesToPayloadReturns>({...})(MyInnerForm)
from formik.
@fatihapaydin see here #472
@jaredpalmer If you create a code, please use reactstrap. Thanks for effort.
from formik.
@jaredpalmer Can you provide complete working typescript code?
from formik.
@jaredpalmer what about an example for the render props version? 🙏
from formik.
Thanks!
from formik.
Related Issues (20)
- Unhandle error on handleSubmit function HOT 1
- Validation Error HOT 4
- handleChange can't target state values with delimiters
- Add correct types for `Field` HOT 6
- onPaste + setFieldValue does not work as intended HOT 2
- Get validating state of individual components
- Page reloads on submit if form is inside drawer component HOT 5
- Margin not added in UI HOT 3
- Uncaught (in promise) TypeError: e2 is null [CoreValidator.ts:138:2]
- Why do I have to specify a name again when using useField's onChange function?
- Support for React Native's SyntheticEvent type
- formik file upload handling HOT 4
- Consider shipping a LICENSE file with your npm package HOT 1
- useField's onChange function should accept non-string values as args
- Formik.dirty is not reacting to nested changes HOT 1
- Docs layout is a bit broken HOT 4
- React Native form resets to initial values
- Terneries, espescially deeply nested ternaries, make code difficult to read. Please do not do this. HOT 1
- RangeError: Maximum call stack size exceeded HOT 1
- Call formik.setFieldValue() with previous value as parameter
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from formik.