На мой взгляд достаточно только для одного, самого главного компонента задать тему, а в стилях отталкиваться от нее. Так как если ты будешь пропихивать стейт в каждый компонент, ты получишь проблемы с производительностью, кучу дублирующегося кода и гемора все это раз за разом прописывать. Вот если сменится тема, то каждому компоненту будет задан соответствующий класс, а потом применены стили, куча вычислений. Это ненужно.