Я создал компонент, который использует MuiThemeProvider, и обернул все свое приложение вокруг этого компонента.Ниже приведена структура компонента.
import React, {Component} from "react";
import {connect} from "react-redux";
import {withStyles} from 'material-ui/styles';
import * as colors from 'material-ui/colors';
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
import { withRouter } from 'react-router-dom';
export class ThemeWrapperComponent extends Component {
constructor(props){
super(props);
}
render(){
return (
<MuiThemeProvider theme={createMuiTheme(
{
palette: {
primary: { main: **colorFromApi** },
}
)}>
<div>
{ this.props.children }
</div>
</MuiThemeProvider>
)
}
}
export const ThemeWrapper = withRouter(connect(mapStateToProps)(ThemeWrapperComponent));
Ниже показано, как я обернул свое приложение вокруг этого компонента:
<ThemeWrapper>
<div>
<Routes/>
</div>
</ThemeWrapper>
Теперь любой цвет, который вы посылаете из API, применяется ко всей теме.Дополнительные настройки могут быть выполнены в зависимости от требований.