Задать вопрос
@MrLumuss

Почему переключение темы срабатывает со второго раза при первой загрузке страницы?

Есть компонент, основанный на Material UI, который отвечает за переключение темы. При первой загрузке страницы он срабатывает со второго клика, далее работает с первого, как и положено. В чем проблема может быть?

Код компонента:
import { DarkMode, WbSunny } from "@mui/icons-material";
import {
  IconButton, Stack, Switch, useTheme,
} from "@mui/material";

const ThemeSwitcherComponent = ({
  isCompact, color, disabled, size,
}) => {
  const { isDark, toggleTheme } = useTheme();

  if (isCompact) {
    return (
      <IconButton
        color={color || "inherit"}
        disabled={disabled}
        size={size}
        onClick={toggleTheme}
      >
        {isDark ? (
          <WbSunny fontSize={size} />
        ) : (
          <DarkMode fontSize={size} />
        )}
      </IconButton>
    );
  }

  return (
    <Stack alignItems="center" flexDirection="row">
      <WbSunny color={color || "inherit"} fontSize={size} />
      <Switch
        checked={isDark}
        color={color || "default"}
        disabled={disabled}
        size={size}
        onChange={toggleTheme}
      />
      <DarkMode color={color || "inherit"} fontSize={size} />
    </Stack>
  );
};

export default ThemeSwitcherComponent;
  • Вопрос задан
  • 38 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • ProductStar
    Разработка на React
    6 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽