Кажется, что вы можете обойтись без передачи здесь опоры: это может быть сделано исключительно с учетом специфики CSS.Например, вы можете добавить соответствующее имя класса в элемент списка, что скажет селектору компонентов в стиле заголовка применить стили для него следующим образом:
const HeaderWithClassNameSpecificity = styled.div`
.inside-header { // apply this to Header children with className="inside-header"
background: salmon;
}
`;
, и ваш элемент списка будет выглядеть так:
<ListItem className="inside-header" />
Другой способ - стилизовать дочерние элементы заголовка на основе их специфичности имени тега, и ваш заголовок будет
const HeaderWithTagNameSpecificity = styled.div`
ul li { // apply this to Header children which are <li> items inside <ul>
background: salmon;
}
`;
, поэтому вам не нужно добавлять className в ListItem при условии, что это "li"."item, который является дочерним для" ul ".
Выбор между этими двумя подходами будет зависеть от вашей общей архитектуры приложения, но имейте в виду, что специфичность на основе классов является более подходящей с точки зрения производительности браузера (учитывайте, когда у вас много идентичных тегов и довольно сложных селекторов тегов в CSS).
Проверьте здесь подтверждение концепции: https://codesandbox.io/s/wy35njlmyl