![](https://camo.githubusercontent.com/b8b25613a72c4c71a581bcef40e6edbf29225bdcf34a7fbb6903944ca6c96480/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6f676f3d6e706d266d6573736167653d72656163742d757365547261636b65645374617465)
$ npm i react-usetrackedstate
$ yarn add react-usetrackedstate
import useTrackedState from 'react-usetrackedstate'
function MyComponent(){
const counter = useTrackedState({ value: 0 })
useEffect(() => {
setInterval(() => {
counter.value++;
}, 1000);
}, [])
return (
<p>{counter.value}</p>
)
}
import useTrackedState from 'react-usetrackedstate'
function MyComponent(){
const user = useTrackedState({})
useEffect(() => {
const responseFromApi = {
name: "npm",
email: "npm@npm.com"
};
user.set(responseFromApi);
user.package = "Github";
}, [])
return (
<>
<p>{user.name}</p>
<p>{user.email}</p>
<p>{user.package}</p>
</>
)
}
Codesandbox Example