我試圖在使用gulp/browserify的React項目中包含material-ui。首先,我意識到我必須導航到node_modules/material-ui目錄並在那裏安裝npm,以從JSX文件構建實際的源代碼。material-ui:未定義ReactTransitionGroup
$ npm install material-ui --save
$ cd node_modules/material-ui
$ npm install
接下來,我添加以下行到我的項目:
var React = require ('react/addons');
var e = document.getElementById ('react-mount-pt');
React.render (React.createElement (RootFrame.RootFrame, null), e);
RootFrame是我寫的一個組成部分,確實沒有什麼花哨。它包括試圖實例從材料的UI這樣的組件的子組件:
var Mui = require ('material-ui');
/* further below, in render(): */
return React.createElement (Mui.RaisedButton ({ label: 'Default' }));
當我嘗試啓動我的應用程序,我得到的錯誤:「遺漏的類型錯誤:無法未定義讀取屬性‘TransitionGroup’」在node_modules /材料的UI/lib中/上線dialog.js含有:
var ReactTransitionGroup = React.addons.TransitionGroup;
當尋找到材料中的UI源(https://github.com/callemall/material-ui/blob/master/src/dialog.jsx),其原因是顯而易見的:有問題的行上面有某些行:
var React = require('react');
但是據我所知,它應該需要('react/addons')才能使用TransitionGroup。
我該如何使用這個庫?
編輯: 從官方網站做出反應,https://facebook.github.io/react/docs/addons.html
When using the react package from npm, simply require('react/addons')
instead of require('react') to get React with all of the add-ons.
材料的UI並沒有這樣做,這可能就是我得到這個錯誤。
在我main.js文件,我說:
var React = require ('react/addons');
var ReactTransitionGroup = React.addons.TransitionGroup;
這段代碼首先運行,我得到一個非空ReactTransitionGroup。稍後,當需要material-ui時,material-ui需要('反應')並獲取沒有ReactTransitionGroup的版本。很明顯,材料UI中存在一個錯誤,我會說!
你需要/包括/在文件中要使用任何方式進口的陣營庫TransitionGroup? Btw。你所附的代碼量至少是不夠的。 – jalooc
我真的不想使用TransitionGroup;它是材料,似乎使用它。我展示的代碼來自material-ui本身,因此您應該在任何使用material-ui的項目中查看完整的源代碼,或者查看GitHub源代碼。 –
我正在使用material-ui,它不會拋出此錯誤。現在我可以說'require('react')'沒問題(與你提出的'require('react/addons')'相反),因爲'React.addons ....'得到了插件。無論如何,我會繼續考慮解決方案。 – jalooc