I use a react context between 2 components, however when I set the value this context in the child filtersBar component, it does not update or useffect in the second child map component.
contextprovider
const SearchContext = createContext();
const SearchContextProvider = ({children}) => {
const [contextValue, setContextValue] = useState(null);
return (
<SearchContext.Provider value={[contextValue, setContextValue]}>
{children}
</SearchContext.Provider>
);
index.js
<SearchContextProvider>
<FiltersBar/>
<Map/>
</SearchContextProvider>
Filtersbar.js
const FiltersBar = () => {
const [searchContext,setSearchContext] = useContext(SearchContext);
const [searchLocationResult, setsearchLocationResult] = useState(null);
const [inputSearchLocation, setinputSearchLocation] = useState("");
useEffect(() => {
// stuff
searchContext.autocompleteLocation = [46.6, 8.5]
setSearchContext(searchContext)
}, [searchLocationResult, inputSearchLocation]);
Map.js
const Map = () => {
const [searchContext, setSearchContext] = useContext(SearchContext);
useEffect(() => {
console.log("use effect map"+JSON.stringify(searchContext))
}, [searchContext]);
I never see this use effect map console log message. What am I missing?