Releases: jaredpalmer/formik
formik@2.4.1
Patch Changes
-
2b194c2
#3808 Thanks @NagaiKoki! - fix type of setFieldValue function -
708bcb2
#3813 Thanks @probablyup! - RevertFieldArray
"shouldComponentUpdate" performance optimization. As it turns out, it's a common use case to have JSX controlled via non-Formik state/props inside ofFieldArray
, so it's not safe to cancel re-renders here. -
187e47d
#3815 Thanks @probablyup! - Revert Yup transform support for the time being, this may be re-introduced in a future release under an opt-in prop.
formik-native@2.1.24
formik@2.4.0
Minor Changes
2f53b70
#3796 Thanks @probablyup! - Add support for Yup "transforms".
formik@2.3.3
Patch Changes
f075a0c
#3798 Thanks @probablyup! - Fixed the use of generics for theArrayHelpers
type such thatany[]
is the default array type and for each individual method the array item type can be overridden if necessary.
formik-native@2.1.23
Patch Changes
- Updated dependencies [
2f53b70
]:- formik@2.4.0
formik-native@2.1.22
Patch Changes
- Updated dependencies [
f075a0c
]:- formik@2.3.3
formik@2.3.2
Patch Changes
formik@2.3.0
Minor Changes
-
73de78d
#3788 Thanks @probablyup! - Added typescript generics toArrayHelpers
interface and its methods so that users who use TypeScript can set the type for their arrays and have type safety on array utils. I have also gone ahead and made supplying a type for the generic optional for the sake of backwards compatibility so any existing TS code that does not give a type for the FieldArray will continue to work as they always have. -
39a7bf7
#3786 Thanks @probablyup! - Yup by default only allows for cross-field validation within the
same field object. This is not that useful in most scenarios because
a sufficiently-complex form will have severalyup.object()
in the
schema.const deepNestedSchema = Yup.object({ object: Yup.object({ nestedField: Yup.number().required(), }), object2: Yup.object({ // this doesn't work because `object.nestedField` is outside of `object2` nestedFieldWithRef: Yup.number() .min(0) .max(Yup.ref('object.nestedField')), }), });
However, Yup offers something called
context
which can operate across
the entire schema when using a \$ prefix:const deepNestedSchema = Yup.object({ object: Yup.object({ nestedField: Yup.number().required(), }), object2: Yup.object({ // this works because of the "context" feature, enabled by $ prefix nestedFieldWithRef: Yup.number() .min(0) .max(Yup.ref('$object.nestedField')), }), });
With this change, you may now validate against any field in the entire schema,
regardless of position when using the \$ prefix.
formik@2.2.10
Patch Changes
-
22e236e
#3784 Thanks @probablyup! - Improve performance of theFieldArray
component by adding ashouldComponentUpdate
check; this should help avoid unnecessary re-renders which may affect the performance of a form. -
bc9cb28
#3785 Thanks @probablyup! - Fixed field error state for array fields that have an error and become empty through an API likearrayHelpers.remove
.The prior behavior resolved the field error to
[undefined]
, now it is simplyundefined
. -
9cbf150
#3787 Thanks @probablyup! - Fix infinite loop issue inField
when field helpers (setTouched
, etc) are used as an argument inReact.useEffect
. -
9c75a9f
#3780 Thanks @probablyup! - Fixed an issue with array field errors being incorrectly split into an array of individual characters instead of an array of error strings. -
35fa4cc
#3783 Thanks @probablyup! - Fix validation of deep.dot.path field references when using thevalidateField
API.