Skip to content

Latest commit

 

History

History
60 lines (47 loc) · 1.77 KB

useCounter.md

File metadata and controls

60 lines (47 loc) · 1.77 KB

useCounter

React state hook that tracks a numeric value.

useNumber is an alias for useCounter.

Usage

import {useCounter, useNumber} from 'react-use';

const Demo = () => {
  const [min, { inc: incMin, dec: decMin }] = useCounter(1);
  const [max, { inc: incMax, dec: decMax }] = useCounter(10);
  const [value, { inc, dec, set, reset }] = useCounter(5, max, min);

  return (
    <div>
      <div>
        current: { value } [min: { min }; max: { max }]
      </div>

      <br />
      Current value: <button onClick={ () => inc() }>Increment</button>
      <button onClick={ () => dec() }>Decrement</button>
      <button onClick={ () => inc(5) }>Increment (+5)</button>
      <button onClick={ () => dec(5) }>Decrement (-5)</button>
      <button onClick={ () => set(100) }>Set 100</button>
      <button onClick={ () => reset() }>Reset</button>
      <button onClick={ () => reset(25) }>Reset (25)</button>

      <br />
      <br />
      Min value:
      <button onClick={ () => incMin() }>Increment</button>
      <button onClick={ () => decMin() }>Decrement</button>

      <br />
      <br />
      Max value:
      <button onClick={ () => incMax() }>Increment</button>
      <button onClick={ () => decMax() }>Decrement</button>
    </div>
  );
};

Reference

const [ current, { inc, dec, get, set, reset } ] = useCounter(initial: number, max: number | null = null, min: number | null = null);
  • current - current counter value;
  • get(): number - getter of current counter value;
  • inc(delta: number): void - increment current value;
  • dec(delta: number): void - decrement current value;
  • set(value: number): void - set arbitrary value;
  • reset(value: number): void - as the set, but also will assign value by reference to the initial parameter;