我尝试将React与Material UI一起使用,但我仍然遇到同样的错误:未定义require。我在浏览器上遇到TapEventPlugin,TouchEventPlugin,injectTapEventPlugin和ResponderEventPlugin的错误。
这是我的index.html中的代码:`
<div id="wrapper">
</div>
<script src="js/react.min.js"></script>
<script src="js/JSXTransformer.js"></script>
<script src="js/TapEventPlugin.js"></script>
<script src="js/TouchEventUtils.js"></script>
<script src="js/injectTapEventPlugin.js"></script>
<script src="js/ResponderEventPlugin.js"></script>
<script type="text/jsx" src="js/index.js"></script>
</body>`
这是我的js文件:
var React = require('react/addons');
var injectTapEventPlugin = require('react-tap-event-plugin');
injectTapEventPlugin();
var mui = require('material-ui');
var ThemeManager = new mui.Styles.ThemeManager();
var AppBar = mui.AppBar;
var ApplicationBar = React.createClass({
render: function(){
return <AppBar title='Title' iconClassNameRight="muidocs-icon-navigation-expand-more"/>;
}
});
React.render(
<ApplicationBar />,
document.getElementById('wrapper')
);
&#13;
有什么想法吗?
答案 0 :(得分:1)
你有两个选择:
删除require,因为它是服务器端功能而不是客户端,并执行您的功能。
下载并使用requirejs,然后在脚本之前将其加载到客户端并使用它。
答案 1 :(得分:1)
我用命令'jsx [所有文件的目录.js] [将要创建的文件夹的名称]解决了编译js的问题。 像这样:'jsx ./ newFolder' 然后我运行此命令:browserify file.js&gt; newFile.js 您需要先安装Browserify。