Здравствуйте, у меня есть собственный хук для определения моей темы
код:
export default function App() {
const [theme, setTheme] = usePersistedState('light');
const toggleTheme = () => {
setTheme(theme.type === 'light' ? 'dark' : 'light');
};
return (
<ThemeProvider theme={theme}>
<GlobalStyle />
<div className="App">
<button onClick={toggleTheme}>a</button>
</div>
</ThemeProvider>
);
и вот мой хук:
import { darkTheme, lightTheme } from '../themes/index';
function usePersistedState(key) {
const [state, setState] = useState(() => {
switch (key) {
case 'dark':
return darkTheme;
case 'light':
return lightTheme;
default:
return lightTheme;
}
});
console.log(state);
useEffect(() => {
localStorage.setItem(key, JSON.stringify(state.type));
}, [key, state]);
return [state, setState];
}
export default usePersistedState;
в основном каждый раз, когда мое состояние изменения Я сохраняю его в локальном хранилище, но по какой-то причине он работает только в первый раз
, когда я пытаюсь изменить свою тему во второй раз, я не ввожу свой переключатель
edit:
![enter image description here](https://i.stack.imgur.com/yj5kb.gif)
, как я показываю в gif первый раз, когда я получаю объект, потому что я ввожу свой переключатель, но когда я пытаюсь изменить тему, я получаю только текст, потому что я не ввожу свой переключатель