Advertisement
Guest User

Untitled

a guest
May 26th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. import React, { createContext, useState, useContext } from "react";
  2.  
  3. const initialState = { currentlySelected: [] };
  4.  
  5. const AppContext = createContext(initialState);
  6.  
  7. const AppWrapper = ({ children }) => {
  8. const [currentlySelected, setCurrentlySelected] = useState([]);
  9.  
  10. const doSetCurrentlySelected = selected => setCurrentlySelected(selected);
  11.  
  12. return (
  13. <AppContext.Provider
  14. value={{
  15. currentlySelected,
  16. doSetCurrentlySelected
  17. }}
  18. >
  19. {children}
  20. </AppContext.Provider>
  21. );
  22. };
  23.  
  24. const MapComponent = props => {
  25. const { doSetCurrentlySelected } = useContext(AppContext);
  26.  
  27. const handleClick = e => {
  28. e.preventDefault();
  29. // get values some how
  30. const values = ["thing1", "thing2"];
  31.  
  32. doSetCurrentlySelected(values);
  33. };
  34.  
  35. return (
  36. <div>
  37. <button onClick={handleClick}>click</button>
  38. </div>
  39. );
  40. };
  41.  
  42. const OtherComponent = props => {
  43. const { currentlySelected } = useContext(AppContext);
  44. return <div>{JSON.stringify(currentlySelected)}</div>;
  45. };
  46.  
  47. const App = props => {
  48. return (
  49. <AppWrapper>
  50. <MapComponent />
  51. <OtherComponent />
  52. </AppWrapper>
  53. );
  54. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement