How to work
- Create a context
- Create a context provider component. Add values in the provide
- Wrap components with the provider component
- For these wrapped components, can use useContext to access values
Create Context Sample Code
export const placeContext = createContext();
//create a function component PlaceContextProvider
const PlaceContextProvider = ({ children }) => {
const [places, dispatch] = useReducer(placeReducer, []);
return (
<placeContext.Provider value={{ places, dispatch }}>
{children}
</placeContext.Provider>
);
};
export default PlaceContextProvider;
Main parts to create a context
- call createContext()// const placeContext = createContext();
- Create a context provider component. Set values property when create this component.
- export the above context provider
Use context provider
import PlaceContextProvider from "./contexts/place";
function App() {
return (
<div className="App">
<PlaceContextProvider>
<Nav />
<PlaceList />
<PlaceForm />
</PlaceContextProvider>
</div>
);
}
export default App;
Main parts to use context provider
- import context provider
- wrap components which will use context in the context provider
Use context in a component
import { placeContext } from "../contexts/place";
export default function Nav() {
const { places } = useContext(placeContext);
return <h1>You have visited {places.length} places.</h1>;
}
Main parts to use context in a component
- import context (not context provider)
- pass the context as paramter of useConext function
- destruct the result which is values we pass to context provider
- use these values in the component
No comments:
Post a Comment