From 16b967306d962898a9030ca15db356edcc997e18 Mon Sep 17 00:00:00 2001 From: DeveloperRaj <40798951+DeveloperRaj@users.noreply.github.com> Date: Tue, 30 Jan 2024 17:51:37 +0530 Subject: [PATCH] Fix #3948 - Changing state was also causing change of initial value --- packages/formik/src/Formik.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/formik/src/Formik.tsx b/packages/formik/src/Formik.tsx index cd17adcd4..c72ac068f 100755 --- a/packages/formik/src/Formik.tsx +++ b/packages/formik/src/Formik.tsx @@ -29,6 +29,7 @@ import { setIn, setNestedObjectValues, } from './utils'; +import cloneDeep from 'lodash/cloneDeep'; type FormikMessage = | { type: 'SUBMIT_ATTEMPT' } @@ -173,10 +174,10 @@ export function useFormik({ const [, setIteration] = React.useState(0); const stateRef = React.useRef>({ - values: props.initialValues, - errors: props.initialErrors || emptyErrors, - touched: props.initialTouched || emptyTouched, - status: props.initialStatus, + values: cloneDeep(props.initialValues), + errors: cloneDeep(props.initialErrors) || emptyErrors, + touched: cloneDeep(props.initialTouched) || emptyTouched, + status: cloneDeep(props.initialStatus), isSubmitting: false, isValidating: false, submitCount: 0,