我使用browserify来管理我的依赖关系,正如material-ui setup文档中建议的那样。当我尝试运行我的代码时,控制台给我这个消息:
Uncaught TypeError: Cannot read property 'component' of undefined
,可追溯到bundle.js:6769
在我的bundle.js
文件中,第6769行是这个函数的返回语句:
getThemeButton: function getThemeButton() {
return this.context.muiTheme.component.button;
},
我在这里错过了什么?我对我正在使用的material-ui和material-ui组件都有require语句。
我的index.js文件的顶部看起来像这样:
var React = require('react');
var injectTapEventPlugin = require('react-tap-event-plugin');
var mui = require('material-ui');
var RaisedButton = mui.RaisedButton;
injectTapEventPlugin();
找到了隐藏在文档中的答案!
显然这是material-ui的必要部分(我不知道为什么他们不包括它作为设置的一部分),但我需要在我的渲染类中包含这个片段:
childContextTypes: {
muiTheme: React.PropTypes.object
},
getChildContext: function() {
return {
muiTheme: ThemeManager.getCurrentTheme()
};
},