物料UI&React:ThemManager不是构造函数
Material UI & React: ThemeManager is not a constructor
我正在将Material UI添加到一个小型React应用程序中,但我认为我正在学习的教程已经过时,他们正在使用旧版本的Material UI。我一直在web控制台中获取_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;
你说得对,教程已经过时了。像这样导入:
import ThemeManager from 'material-ui/lib/styles/theme-manager';
此外:通过上下文传递的密钥必须称为"muiTheme"
查看本页文档中的1号:http://www.material-ui.com/#/customization/themes
而不是这样做:
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)
import React, {Component} from 'react';
import MessageList from './MessageList.jsx';
import ThemeManager from 'material-ui/lib/styles/theme-manager';
import AppBar from 'material-ui/lib/app-bar';
import MyTheme from './Theme.jsx';
export default class App extends Component {
constructor(){
super();
}
static childContextTypes = {
muiTheme: React.PropTypes.object
}
getChildContext(){
return {
muiTheme: ThemeManager.getMuiTheme(MyTheme)
};
}
render(){
return(
<div>
<AppBar title="Chat App"/>
<MessageList />
</div>
);
}
}
这应该可以解决
的问题相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- 如何使用内部对象构造对象
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 使用闭包共享构造函数参数
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 从js引擎的角度来看闭包和构造函数是如何工作的
- 构造JSON对象
- 如何用另一个Javascript更改Javascript函数值
- 如何使用此从对象访问构造函数
- Javascript:为什么是构造函数's __proto__属性Empty(){}
- 什么是“;传递给NewPromiseCapability的非构造函数值“;意思是
- 物料UI&React:ThemManager不是构造函数
- 如何更改构造函数值 JS
- 从按钮onclick->提示符中重新计算对象构造函数值
- 在Javascript中,为什么在构造函数上设置原型函数会改变其实例上的构造函数值