mirror of
https://github.com/streamich/react-use.git
synced 2025-12-08 18:02:14 +00:00
62 lines
1.2 KiB
Markdown
62 lines
1.2 KiB
Markdown
# `useGlobalState`
|
|
|
|
A React hook that creates a globally shared state.
|
|
|
|
## Usage
|
|
|
|
```tsx
|
|
const useGlobalValue = createGlobalState<number>(0);
|
|
|
|
const CompA: FC = () => {
|
|
const [value, setValue] = useGlobalValue();
|
|
|
|
return <button onClick={() => setValue(value + 1)}>+</button>;
|
|
};
|
|
|
|
const CompB: FC = () => {
|
|
const [value, setValue] = useGlobalValue();
|
|
|
|
return <button onClick={() => setValue(value - 1)}>-</button>;
|
|
};
|
|
|
|
const Demo: FC = () => {
|
|
const [value] = useGlobalValue();
|
|
return (
|
|
<div>
|
|
<p>{value}</p>
|
|
<CompA />
|
|
<CompB />
|
|
</div>
|
|
);
|
|
};
|
|
```
|
|
|
|
It also allows initializing the state with a function and using a function in the setState:
|
|
|
|
```tsx
|
|
const useGlobalValue = createGlobalState<number>(() => 0);
|
|
|
|
const CompA: FC = () => {
|
|
const [value, setValue] = useGlobalValue();
|
|
|
|
return <button onClick={() => setValue(value => value + 1)}>+</button>;
|
|
};
|
|
|
|
const CompB: FC = () => {
|
|
const [value, setValue] = useGlobalValue();
|
|
|
|
return <button onClick={() => setValue(value => value - 1)}>-</button>;
|
|
};
|
|
|
|
const Demo: FC = () => {
|
|
const [value] = useGlobalValue();
|
|
return (
|
|
<div>
|
|
<p>{value}</p>
|
|
<CompA />
|
|
<CompB />
|
|
</div>
|
|
);
|
|
};
|
|
```
|