Skip to content

Instantly share code, notes, and snippets.

@JeremyTheModernist
Created June 29, 2020 21:43
Show Gist options
  • Save JeremyTheModernist/8d6b6e482ea3d82974f4bf8b2475e9ed to your computer and use it in GitHub Desktop.
Save JeremyTheModernist/8d6b6e482ea3d82974f4bf8b2475e9ed to your computer and use it in GitHub Desktop.
Global React state with Reducer
import React, { createContext, useContext, useReducer } from "react";
var StoreContext = createContext();
var initialState = {
count: 0,
};
var reducer = (state, action) => {
switch (action.type) {
case "increment":
return {
count: state.count + 1,
};
case "decrement":
return {
count: state.count - 1,
};
}
};
export const StoreProvider = ({ children }) => {
var [state, dispatch] = useReducer(reducer, initialState);
return (
<StoreContext.Provider value={[state, dispatch]}>
{children}
</StoreContext.Provider>
);
};
export const useStore = () => useContext(StoreContext);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment