npm.io
4.11.2 • Published 5 years ago

@rooks/use-interval

Licence
MIT
Version
4.11.2
Deps
0
Size
11 kB
Vulns
0
Weekly
0
Stars
3.4K

@rooks/use-interval

Note: Future updates to this package have moved to the main package rooks. All hooks now reside in a single package which you can install using

npm install rooks

or

yarn add rooks

Rooks is completely treeshakeable and if you use only 1 of the 50+ hooks in the package, only that hook will be bundled with your code. Your bundle will only contain the hooks that you need. Cheers!

TitleCard

Build Status

About

setInterval hook for React.

Installation

npm install --save @rooks/use-interval

Importing the hook

import useInterval from "@rooks/use-interval"

Usage

function reducer(state, action) {
  switch (action.type) {
    case "increment":
      return { count: state.count + 1 };
    default:
      return state;
  }
}

function Demo() {
  const [value, dispatcher] = useReducer(reducer, { count: 0 });

  function increment() {
    dispatcher({
      type: "increment"
    });
  }

  const { start, stop } = useInterval(() => {
    increment();
  }, 1000);

  return (
    <>
      <p>value is {value.count}</p>
      <button onClick={start}>Start</button>
      <button onClick={stop}>Stop</button>
    </>
  );
}
render(<Demo/>)
Arguments
Argument Type Description Default value
callback function Function be invoked after each interval duration undefined
intervalDuration number Duration in milliseconds after which callback is invoked undefined
startImmediate boolean Should the timer start immediately or no false
Returned Object
Returned object attributes Type Description
start function Start the interval
stop function Stop the interval
intervalId intervalId IntervalId of the interval