Uncaught TypeError: _materialUi.Styles.ThemeManager is not a function
Uncaught TypeError: _materialUi.Styles.ThemeManager is not a function
我写了下面的代码
import React from 'react';
import mui from 'material-ui';
import injectTapEventPlugin from 'react-tap-event-plugin';
let ThemeManager = new mui.Styles.ThemeManager();
let Colors = mui.Styles.Colors;
injectTapEventPlugin();
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
messages : [{id: 1, text: 'Hi'}, {id: 2, text: 'Hello'}, {id: 3, text: 'World'}, {id: 4, text: 'test'}]
};
}
getChildContext() {
return {
stores: this.props.stores,
muiTheme: ThemeManager.getCurrentTheme()
};
}
componentWillMount() {
ThemeManager.setPalette({
primary1Color: Colors.blue500
});
}
render() {
var messageNodes = this.state.messages.map((message) => {
return (<div key={message.id}>{message.text}</div>);
});
return (<div>{messageNodes}</div>);
}
}
App.childContextTypes = {
stores: React.PropTypes.object,
muiTheme: React.PropTypes.object
};
export default App;
但是一直报错
Uncaught TypeError: _materialUi2.default.Styles.ThemeManager is not a function
网上找了找,很多人都解决了
https://github.com/callemall/material-ui/issues/1439
但相同的解决方案对我不起作用。
注意 我用这个答案回答的原始问题包含:
const ThemeManager = new mui.Styles.ThemeManager();
这是您对 const
的使用,而不是 let
。您想使用 let 初始化函数 类。
常量:
The const declaration creates a read-only reference to a value.
发件人:Mozilla Docs
设:
The let statement declares a block scope local variable, optionally
initializing it to a value.
发件人:Mozilla Docs
根据您的转译器,您应该会收到 ThemeManager 为 read-only
的错误
因此,在发布您的存储库后,我注意到您使用的是 mui 0.14,经过快速研究后,您似乎不再需要 ThemeManager 的构造函数 - 在之前的版本中您需要。
只需在导入时定义它:
import ThemeManager from 'material-ui/lib/styles/theme-manager';
发件人:Material-UI
查看标题为:1 的示例。在 Context
中使用 React 生命周期方法
我写了下面的代码
import React from 'react';
import mui from 'material-ui';
import injectTapEventPlugin from 'react-tap-event-plugin';
let ThemeManager = new mui.Styles.ThemeManager();
let Colors = mui.Styles.Colors;
injectTapEventPlugin();
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
messages : [{id: 1, text: 'Hi'}, {id: 2, text: 'Hello'}, {id: 3, text: 'World'}, {id: 4, text: 'test'}]
};
}
getChildContext() {
return {
stores: this.props.stores,
muiTheme: ThemeManager.getCurrentTheme()
};
}
componentWillMount() {
ThemeManager.setPalette({
primary1Color: Colors.blue500
});
}
render() {
var messageNodes = this.state.messages.map((message) => {
return (<div key={message.id}>{message.text}</div>);
});
return (<div>{messageNodes}</div>);
}
}
App.childContextTypes = {
stores: React.PropTypes.object,
muiTheme: React.PropTypes.object
};
export default App;
但是一直报错
Uncaught TypeError: _materialUi2.default.Styles.ThemeManager is not a function
网上找了找,很多人都解决了
https://github.com/callemall/material-ui/issues/1439
但相同的解决方案对我不起作用。
注意 我用这个答案回答的原始问题包含:
const ThemeManager = new mui.Styles.ThemeManager();
这是您对 const
的使用,而不是 let
。您想使用 let 初始化函数 类。
常量:
The const declaration creates a read-only reference to a value.
发件人:Mozilla Docs
设:
The let statement declares a block scope local variable, optionally initializing it to a value.
发件人:Mozilla Docs
根据您的转译器,您应该会收到 ThemeManager 为 read-only
的错误因此,在发布您的存储库后,我注意到您使用的是 mui 0.14,经过快速研究后,您似乎不再需要 ThemeManager 的构造函数 - 在之前的版本中您需要。
只需在导入时定义它:
import ThemeManager from 'material-ui/lib/styles/theme-manager';
发件人:Material-UI
查看标题为:1 的示例。在 Context
中使用 React 生命周期方法