Formik Versions Save

Build forms in React, without the tears 😭

[email protected]

11 months ago

Patch Changes

  • 2b194c2 #3808 Thanks @NagaiKoki! - fix type of setFieldValue function

  • 708bcb2 #3813 Thanks @probablyup! - Revert FieldArray "shouldComponentUpdate" performance optimization. As it turns out, it's a common use case to have JSX controlled via non-Formik state/props inside of FieldArray, 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.

[email protected]

11 months ago

Patch Changes

[email protected]

11 months ago

Minor Changes

[email protected]

11 months ago

Patch Changes

[email protected]

11 months ago

Patch Changes

  • f075a0c #3798 Thanks @probablyup! - Fixed the use of generics for the ArrayHelpers type such that any[] is the default array type and for each individual method the array item type can be overridden if necessary.

[email protected]

11 months ago

Patch Changes

[email protected]

11 months ago

Patch Changes

  • f086b5a #3237 Thanks @pieplu! - Changed getIn to return undefined when it can't find a value AND a parent of that value is "falsy" ( "" / 0 / null / false )

  • 6d8f018 #3792 Thanks @probablyup! - Update the type for setFieldValue to reflect the returned Promise and potential returned error(s).

[email protected]

11 months ago

Patch Changes

[email protected]

11 months ago

Minor Changes

  • 73de78d #3788 Thanks @probablyup! - Added typescript generics to ArrayHelpers 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 several yup.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.

[email protected]

11 months ago

Patch Changes