Last active
June 16, 2023 15:26
-
-
Save sorenlouv/fc897c1629979e669714893df966b1b7 to your computer and use it in GitHub Desktop.
React hook for getting a unique identifier for a component
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { useRef } from 'react'; | |
let uniqueId = 0; | |
const getUniqueId = () => uniqueId++; | |
export function useComponentId() { | |
const idRef = useRef(getUniqueId()); | |
return idRef.current; | |
} |
Also, for test snapshot support, you'll want a predictable id, maybe using a different prop from the instance.
You shouldn't be using snapshots at all. write proper tests.
For anyone stumbling upon this in 2023 there's React.useId
for this very purpose since React v18.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
There is an open issue for this on the react repo.
Here is a more robust implementation that also supports SSR.