Skip to content

Instantly share code, notes, and snippets.

@Frodigo
Created June 23, 2021 07:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Frodigo/cb6509ea16c2ce40a400fcc33812a2d8 to your computer and use it in GitHub Desktop.
Save Frodigo/cb6509ea16c2ce40a400fcc33812a2d8 to your computer and use it in GitHub Desktop.
React Context real example
import React, { createContext, useReducer } from 'react';
import {
    MessagesReducer,
    messagesInitialState,
    addMessage as addMessageAction,
    removeMessage as removeMessageAction
 } from '../../reducers/Messages';
export const MessagesContext = createContext();
export const MessagesProvider = ({ children }) => {
    const [{ messages }, dispatch ] = useReducer(MessagesReducer, messagesInitialState);
    const removeMessage = message => dispatch(removeMessageAction(message));
    const addMessage = message => dispatch(addMessageAction(message));
    return <MessagesContext.Provider value={{
        messages,
        addMessage,
        removeMessage
    }}>
        {children}
    </MessagesContext.Provider>
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment