【发布时间】:2018-06-09 04:16:35
【问题描述】:
我开始将 material-ui-next (branch next aka v1) 用于 ReactJS 网络应用程序。 在为放置在 AppBar 内的 Typography 组件设置默认颜色和预期颜色时,我发现了一些困难。
我已经定义了这个material palette,正如您通过选择靛蓝作为原色看到的那样,文本原色自动设置为白色(#ffffff)。官方material documentation的靛蓝调色板也证实了这一点。
但是默认颜色是黑色。如果我将color 属性设置为default,它仍然是黑色的,使其工作的唯一方法是将其设置为inherit。
我为什么要这样做?我错过了什么吗?
我在一个主题中有also seen that,也可以自定义text 属性。
这是正确的轨道吗?而且,如果是的话,我该如何使用 text.primary 例如,因为 docs states Typography 只能接受作为值 default|accent|error|primary|secondary|inherit?
IconButton 也会出现同样的问题。
您可以在下面找到我的代码。在构造函数中设置调色板自定义值,然后在render() 中将主题传递给MuiThemeProvider。
import React from 'react';
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
import { indigo, lightBlue, red } from 'material-ui/colors';
import AppBar from 'material-ui/AppBar/AppBar';
import Toolbar from 'material-ui/Toolbar/Toolbar';
import Typography from 'material-ui/Typography/Typography';
import IconButton from 'material-ui/IconButton';
import DeleteIcon from 'material-ui-icons/Delete';
class App extends React.Component {
constructor() {
super();
const options = {
palette: {
primary: indigo,
secondary: lightBlue,
error: red,
},
};
this.theme = createMuiTheme(options);
}
render() {
return (
<MuiThemeProvider theme={this.theme}>
<AppBar>
<Toolbar>
<Typography color="inherit">
My App
</Typography>
<IconButton color="inherit" aria-label="Menu">
<DeleteIcon />
</IconButton>
</Toolbar>
</AppBar>
</MuiThemeProvider>
);
}
}
export default App;
这是我的index.js 文件:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './material/App';
ReactDOM.render(<App />, document.getElementById('root'));
提前谢谢你。
【问题讨论】:
标签: reactjs material-design material-ui