Skip to content

Latest commit

 

History

History
61 lines (42 loc) · 1.82 KB

atom-with-hash.mdx

File metadata and controls

61 lines (42 loc) · 1.82 KB
title
atomWithHash

Usage

atomWithHash(key, initialValue, options): PrimitiveAtom

This creates a new atom that is connected with URL hash. The hash must be in the URLSearchParams format. It’s a two-way binding: changing the atom value will change the hash and changing the hash will change the atom value. This function works only with DOM.

Parameters

key (required): a unique string used as the key when syncing state with localStorage, sessionStorage, or AsyncStorage

initialValue (required): the initial value of the atom

options (optional): an object of options to customize the behavior of the atom

Options

serialize (optional): a custom function to serialize the atom value to the hash. Defaults to JSON.stringify.

deserialize (optional): a custom function to deserialize the hash to the atom value. Defaults to JSON.parse.

delayInit (optional): delay initialization of the atom to when onMount is called. See #739. Defaults to true.

replaceState (optional): when the atom value is changed, replace the current history entry instead of adding a new one. See #660. Defaults to false.

subscribe (optional): custom hash change subscribe function

Examples

import { useAtom } from 'jotai'
import { atomWithHash } from 'jotai/utils'
const countAtom = atomWithHash('count', 1)
const Counter: React.FC = () => {
  const [count, setCount] = useAtom(countAtom)
  return (
    <>
      <div>count: {count}</div>
      <button onClick={() => setCount((c) => c + 1)}>button</button>
    </>
  )
}

Codesandbox

Deleting Item

Please refer atomWithStorage for the usage about deleting items.