2015-06-08 21 views
2

我正在使用browserify來管理我的依賴關係,如material-ui設置文檔中的建議。當我嘗試運行我的代碼,控制檯給我這個消息:無法讀取未定義的'組件':使用material-ui和browserify

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組件。

我index.js文件的開頭是這樣的:

var React = require('react'); 
    var injectTapEventPlugin = require('react-tap-event-plugin'); 
    var mui = require('material-ui'); 
    var RaisedButton = mui.RaisedButton; 

    injectTapEventPlugin(); 
+0

沒有足夠的代碼來查看問題。你有沒有爲你的組件定義'contextTypes'? – imcg

+0

我完全錯過了。現在它工作:-) – tinazheng

回答

2

發現隱藏在docs答案!

顯然,這是物質的UI的必要組成部分(我不知道他們爲什麼不把它作爲一組工作的一部分),但我需要包括在我的渲染類這個片段:

childContextTypes: { 
    muiTheme: React.PropTypes.object 
}, 

getChildContext: function() { 
    return { 
     muiTheme: ThemeManager.getCurrentTheme() 
    }; 
},