React hook for setting an interval as posted on overreacted.io
Dan Abramov's blog post explaining why you cannot just use setInterval
within useEffect
.
- codesandbox / codesandbox-client
- kentcdodds / react-performance
- siddharthkp / react-ui
- element-motion
- wintercounter / mhy
- sagemathinc / cocalc
- wintercounter / mhy
npm install --save use-interval
import * as React from 'react'
import useInterval from 'use-interval'
const Example = () => {
let [count, setCount] = React.useState(0);
useInterval(() => {
// Your custom logic here
setCount(count + 1);
}, 1000); // passing null instead of 1000 will cancel the interval if it is already running
return <h1>{count}</h1>;
}
// TypeScript Declaration
useInterval(
callback: () => void,
delay: number,
immediate?: boolean /* called when mounted if true */
)
MIT
This hook is created using create-react-hook.