使用Material-UI主题更改根背景颜色

我正在尝试一些非常简单的方法:使用Material-UI主题为网站构建两个主题:

一个light主题和dark一个主题,但效果不佳:该主题位于每个Material-UI

react元素上,但是html文档上的root元素仍具有相同的默认白色背景。

当然,可以通过使用纯.css攻击身体来更改它:

body {

background-color: #222;

}

但是我一直想用React动态地更改它,尽管这可以工作,但是不能:

import React from 'react';

import ReactDOM from 'react-dom';

import App from './App';

import { ThemeProvider } from '@material-ui/styles';

import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';

const themeLight = createMuiTheme({

palette: {

background: {

default: "#e4f0e2"

}

},

});

const themeDark = createMuiTheme({

palette: {

background: {

default: "#222222",

}

},

});

ReactDOM.render(

<MuiThemeProvider theme = { themeDark }>

<App />

</MuiThemeProvider>, document.getElementById('root'));

而且我在这里迷路了,有没有办法用Material-UI主题做到这一点?

回答:

CssBaseline是控制此方面的组件。如果您不使用CssBaseline,那么您只会看到浏览器提供的默认设置。

这是一个工作示例:

import React from "react";

import ReactDOM from "react-dom";

import CssBaseline from "@material-ui/core/CssBaseline";

import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles";

import Button from "@material-ui/core/Button";

const themeLight = createMuiTheme({

palette: {

background: {

default: "#e4f0e2"

}

}

});

const themeDark = createMuiTheme({

palette: {

background: {

default: "#222222"

},

text: {

primary: "#ffffff"

}

}

});

const App = () => {

const [light, setLight] = React.useState(true);

return (

<MuiThemeProvider theme={light ? themeLight : themeDark}>

<CssBaseline />

<Button onClick={() => setLight(prev => !prev)}>Toggle Theme</Button>

</MuiThemeProvider>

);

};

const rootElement = document.getElementById("root");

ReactDOM.render(<App />, rootElement);

编辑主题背景

以上是 使用Material-UI主题更改根背景颜色 的全部内容, 来源链接: utcz.com/qa/432336.html

回到顶部