camelCaseVlad , Ваше решение почти то что нужно, только все равно ведь приходится использовать Consumer в собственных компонентах.
function MyComponent() {
const renderMyComponent = theme => {
return (
// code
);
};
return <ThemeConsumer>{theme => renderMyComponent(theme)}</ThemeConsumer>;
};
ThemeProvider делает это каким то образом под капотом, хочется понять как. Чтобы осталось только импортнуть MyProvider на вернхем уровне, указать там пропс и всё. Этот пропс автоматом попадает во все компоненты без доп.действий.