useLocalStorageState
- Published on
- • 1 mins read•––– views
Custom hooks to use local storage state
import { useState, useEffect } from 'react'
export let useLocalStorageState = (key, defaultValue = '', options = {}) => { let { serialize = JSON.stringify, deserialize = JSON.parse } = options let [state, setState] = useState(() => { let valueInLocalStorage = window.localStorage.getItem(key) if (valueInLocalStorage) { return deserialize(valueInLocalStorage) } return defaultValue })
useEffect(() => { window.localStorage.setItem(key, serialize(state)) }, [key, state, serialize])
return [state, setState]}