190просмотров
33.6%от подписчиков
24 апреля 2025 г.
Score: 209
📝 Решение задачи: Основная ошибка в коде связана с инициализацией контекста:// Создаем контекст
const ThemeContext = createContext();При создании контекста не указано значение по умолчанию. Из-за этого, если useTheme будет вызван вне провайдера, проверка if (!context) не сработает правильно, потому что context будет равен undefined, а не null. Исправление:// Создаем контекст с начальным значением null
const ThemeContext = createContext(null); Либо можно предоставить полноценное начальное значение:const ThemeContext = createContext({ theme: 'light', toggleTheme: () => { console.warn('ThemeContext используется вне ThemeProvider'); }
}); Без начального значения null проверка в хуке useTheme может не сработать корректно, если контекст используется вне провайдера, и в консоли будет отображаться не информативная ошибка. Это частая ошибка при работе с контекстом в React, которая может привести к сложно отлаживаемым проблемам, особенно в больших приложениях. Подписывайся на @frontendino