`useDeepCompareEffect` throws error when comparing objects created with `Object.create(null)`
What is the current behavior?
useDeepCompareEffect cannot compare object created with Object.create(null) due to error in fast-deep-equal dependency (See https://github.com/epoberezkin/fast-deep-equal/issues/111). The hook throws TypeError: a.valueOf is not a function
Steps to reproduce it and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have extra dependencies other than react-use. Paste the link to your JSFiddle or CodeSandbox example below:
- Create an object with
Object.create(null) - Add it to the dependency array of
useDeepCompareEffect - Have something update the object with a different object created with
Object.create(null)
https://codesandbox.io/p/devbox/cranky-lake-hshk3h
What is the expected behavior?
Comparison should not throw. Given the fast-deep-equal dependency has not been updated in 6 years, it would be good to update to another one, such as fast-equals
A little about versions:
- OS: Windows
- Browser (vendor and version): Chrome 146
- React: ^18.2.0, ^19.0.0
react-use: 17.5.1, 17.6.0- Did this worked in the previous package version? Unsure
Source: streamich/react-use