Rehooks

useMap

Provides a reactive Map instance with common mutation methods for state management.

useMap

Installation

npx rehooks-cli@latest add useMap

Usage

Component.tsx
import { useMap } from "~/hooks/useMap";
 
function Component() {
  const map = useMap<string, number>([
    ["a", 1],
    ["b", 2],
    ["c", 3],
  ]);
 
  const setValue = (key: string, value: number) => {
    map.set(key, value);
  };
 
  const deleteValue = (key: string) => {
    map.delete(key);
  };
 
  const clearValues = () => {
    map.clear();
  };
 
  const initializeValues = () => {
    map.initialize([
      ["a", 1],
      ["b", 2],
      ["c", 3],
    ]);
  };
 
  return (
    <div>
      <button onClick={() => setValue("d", 4)}>Set value</button>
      <button onClick={() => deleteValue("b")}>Delete value</button>
      <button onClick={clearValues}>Clear values</button>
      <button onClick={initializeValues}>Initialize values</button>
    </div>
  );
}

API

useMap

useMap.ts
function useMap<K, V>(
  initialEntries?: Iterable<[K, V]> | [] | (() => Iterable<[K, V]>),
): [ReadonlyMap<K, V>, MapActions<K, V>];

Provides a reactive Map instance with common mutation methods for state management.

Parameters

NameTypeDescription
initialEntriesIterable<[K, V]> | [] | () => Iterable<[K, V]>Optional initial map entries (optional)
initialEntries.0KMap key to initialize
initialEntries.1VMap value to initialize
initialEntries.get() => Iterable<[K, V]>Initializes/replaces the entire map contents

Returns

NameTypeDescription
mapK
setvoid
deletevoid
clearvoid
initializevoid

On this page