我在Material UI中添加了一个小型React应用程序,但我相信我正在经历的教程已经过时,他们正在使用旧版本的Material UI。我一直在网络控制台和_materialUi2.default.Styles.ThemeManager is not a constructor
中获得Missing class properties transform
。
Material UI的文档不是很好,我不确定是否有更好的资源来查看他们的最新文档。
我认为问题出在ThemeManager.setPalette()
上。有什么建议吗?
import React from 'react';
import mui from 'material-ui';
import MessageList from './MessageList.jsx';
// Material UI
import ThemeManager from 'material-ui/lib/styles/theme-manager';
import Colors from 'material-ui/lib/styles/colors';
import AppBar from 'material-ui/lib/app-bar';
import getMuiTheme from 'material-ui/lib/styles/getMuiTheme';
class App extends React.Component {
constructor() {
super();
ThemeManager.setPalette({
primary1Color: Colors.blue500,
primary2Color: Colors.blue700,
primary3Color: Colors.blue100,
accent1Color: Colors.pink400
});
}
static childContextTypes = {
muitheme: React.PropTypes.object
}
getChildContext() {
return {
muiTheme: ThemeManager.getMuiTheme()
}
}
render() {
return (
<div>
<AppBar title="Chat App"/>
<MessageList />
</div>
);
}
}
export default App;
答案 0 :(得分:2)
你是对的教程已经过时了。像这样导入:
import ThemeManager from 'material-ui/lib/styles/theme-manager';
另外:通过上下文传递的密钥必须称为“ muiTheme ”
在本页的文档中查看数字1:http://www.material-ui.com/#/customization/themes
答案 1 :(得分:1)
是的,教程已经过时了。
而不是这样做:
Process p= Runtime.getRuntime().exec("/home/myname/Scrivania/capture.sh");
您可以在ThemeManager.setPalette({
primary1Color: Colors.blue500,
primary2Color: Colors.blue700,
primary3Color: Colors.blue100,
accent1Color: Colors.pink400
});
Theme.jsx
然后在您的主import Colors from 'material-ui/lib/styles/colors';
export default {
palette: {
primary1Color: Colors.blue500,
primary2Color: Colors.blue700,
primary3Color: Colors.blue100,
accent1Color: Colors.pink400
}
};
中,导入App.jsx
并将其设置为Theme.jsx
getMuiTheme(MyTheme)
这应解决问题