I just started using createContext/useContext and after successfuly implementing it I would like now to put it in seperate file. The problem is that i am getting error of too many re-renders and I don't really know whats the problem. Could you give me a clue what might be wrong? Below I have put context code,app.js and example of component where context is actually used.
***context***
import React, { createContext, useState } from "react";
export const DarkModeContext = createContext({
isDarkMode: false,
toggleIsDarkMode: () => {},
});
export const DarkModeContextProvider = ({ children }) => {
const [isDarkMode, setIsDarkMode] = useState(false);
const toggleIsDarkMode = setIsDarkMode((prev) => !prev);
const value = {
isDarkMode,
toggleIsDarkMode,
};
return (
<DarkModeContext.Provider value={value}>
{children}
</DarkModeContext.Provider>
);
};
*** App.js***
import { useContext } from "react";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";
import Navbar from "../components/Navbar";
import MainSection from "../components/MainSection/MainSection";
import CountryPage from "../components/CountryPage";
import { Wrapper } from "./App.styles";
import { DarkModeContext, DarkModeContextProvider } from "./DarkModeContext";
function App() {
const { isDarkMode } = useContext(DarkModeContext);
return (
<DarkModeContextProvider>
<Router>
<Wrapper dark={isDarkMode}>
<Navbar />
<Routes>
<Route path="/" element={<MainSection />}></Route>
<Route
path="/country/:countryCode"
element={<CountryPage />}
></Route>
</Routes>
</Wrapper>
</Router>
</DarkModeContextProvider>
);
}
***part of component***
import {useContext} from "react"
import { DarkModeContext } from "../../App/DarkModeContext";
export default function CountryPage() {
const { isDarkMode } = useContext(DarkModeContext);
return (
<CountryPageWrapper dark={isDarkMode}>
<StyledLink dark={isDarkMode} to="/">