Лучший способ достичь этого - передать опору элементу, который вы получаете от styled-comopnent
.
// outside of the component
interface OuterWrapperProps {
dark: boolean;
}
const OuterWrapper = styled.div<OuterWrapperProps>`
display: inline-block;
padding: 20px;
${props => props.dark && css`
background-color: 'gray';
`};
`;
И когда вы визуализируете этот элемент:
...
<OuterWrapper dark={this.state.dark}> ... </OuterWrapper>
...
И у вас все еще есть контроль над темой из вашего state
!
Это помогает сделать ваш код более читабельным, а также следовать тому, что предлагают документы.