@HitGirl

Почему не работает кнопка?

Здравствуйте!
Подскажите, пожалуйста, почему после нажатия на кнопку не происходит смена цветовой темы?
import {createContext, FC, useEffect} from "react";
import ThemeProvider, {useTheme} from "./components/useContext/ThemeContext";

const UseContextRefactoringExample:FC = ()=>{
    const [darkTheme, toggleTheme] = useTheme()

    useEffect(()=>{
        console.log("Theme Updated!")
    },[darkTheme])
    return (
        <>
            <ThemeProvider>
                <button onClick={toggleTheme}>Toggle Theme</button>
                <div style={{'backgroundColor': darkTheme ? "black":"white", 'color': darkTheme ? 'white':'black'}}>Text</div>
            </ThemeProvider>
        </>
    );
}

export default UseContextRefactoringExample;


import {createContext, FC, ReactNode,  useContext, useState} from "react";

export const ThemeContext =  createContext< [boolean, ()=>void]>([true, ()=> {}])

const ThemeProvider:FC<{children: ReactNode}> = ({children})=>{
    const [darkTheme, setDarkTheme] = useState(true)

    function toggleTheme(){
        setDarkTheme(prev =>!prev)
    }

 return (
     <ThemeContext.Provider value={[darkTheme, toggleTheme]}>
         {children}
     </ThemeContext.Provider>
 )
}


export const useTheme = () =>{
    return useContext(ThemeContext)
}

export default ThemeProvider;
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы