useValue
Interface
Parameters
interface UseValue<Value> {
(key: string, initialValue: Value): UseValueApi<Value>
}
Returned value
type UseValueApi<Value> =
[value: Value, setValue: SetValue<Value>]
interface SetValue<Value> {
(value: Value): void;
(valueFn: (oldValue: Value) => Value): void;
}
Setting data
Directly
const [value, setValue] = useValue<number>('some-key', 0);
const increment = () => setValue(value + 1);
increment(); // value: 1
increment(); // value: 2
increment(); // value: 3
By callback
const [value, setValue] = useValue<number>('some-key', 0);
const increment = () => setValue((oldValue: number) => oldValue + 1);
increment(); // value: 1
increment(); // value: 2
increment(); // value: 3