Fix #3948 - Changing state was also causing change of initial value#3949
Conversation
🦋 Changeset detectedLatest commit: 8434aae The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
|
@DeveloperRaj thank you, last thing can you add a unit test that verifies the |
@quantizor Thanks for suggestion of test. I have added a new test that checks that initial values are not being modified when we do handleChange or setValues etc. It looks a bit messy but had no option since this bug would repro only happen when we have deeply nested objects otherwise it would work just fine even without my code change. |
Resolves Issue #3948
This addresses the problem of the dirty field not updating when the value of a nested object changes. The root cause of this issue is that the
initialValuescoming from props were directly assigned to theuseRef, which did not perform a deep copy. Without a deep copy, it was modifying the originalinitialValuesprops along with the current state. Consequently, when comparing them for equality, the result was true