這是對我來說也是一個非常普遍的問題。發生這種情況是因爲MaterialUI需要一些基本樣式才能工作。您可以在這裏找到它們:http://material-ui.com/#/get-started
所以,除非您將這些樣式添加到所有使用material-ui的組件中,否則它將顯示上述錯誤,因爲它正在尋找不可用的依賴項。如果你轉到上面的鏈接,它會告訴你它需要什麼樣的風格。但是,每次在我製作的每個組件中都包含這些樣式變得非常繁瑣。
我使用了React Mixins。它們基本上是可以添加到組件代碼中的部分組件。當你將一個mixin添加到一個組件時,實際發生的是,mixin被擴展並添加到你的組件中。很像變量字符串連接(恐怖的例子,我知道,但它會幫助你理解)。當您將一個變量添加到字符串連接時,變量會被其值取代。這就是React Mixins發生的情況。
這是我喜歡做的事:
定義在我的目錄中的material.jsx文件,該文件是這樣的(它基本上是從他們的入門頁面複製):
var React = require('react'),
mui = require('material-ui'),
ThemeManager = new mui.Styles.ThemeManager(),
injectTapEventPlugin = require("react-tap-event-plugin");
injectTapEventPlugin();
module.exports = {
childContextTypes: {
muiTheme: React.PropTypes.object
},
getChildContext: function() {
return {
muiTheme: ThemeManager.getCurrentTheme()
};
}
}
以上只是一個mixin,它包含Material-UI正常運行所需的所有樣式。 現在,我將使用上述模塊作爲所有Material-UI組件的混合。
var React = require('react'),
material = require('./material.jsx'),
mui = require('material-ui'),
FlatButton = mui.FlatButton
module.exports = React.createClass({
mixins: [material],
render: function() {
return <FlatButton>Hello</FlatButton>
}
})
在你的代碼,如果你把這個material.jsx文件,並添加行混入:[材料]像我一樣,一切都會開始工作:)