Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react中将单独文件中的组件链接在一起_Javascript_Reactjs_Material Ui - Fatal编程技术网

Javascript 如何在react中将单独文件中的组件链接在一起

Javascript 如何在react中将单独文件中的组件链接在一起,javascript,reactjs,material-ui,Javascript,Reactjs,Material Ui,在我的app.jsx文件中说我正在呼叫: var Main = require('./components/main.jsx'); ReactDOM.render( <Main />, document.getElementById('container') ); var Main=require('./components/Main.jsx'); ReactDOM.render( ,document.getElementById('容器')

在我的app.jsx文件中说我正在呼叫:

var Main = require('./components/main.jsx'); 
 ReactDOM.render(
        <Main />, document.getElementById('container')

        );
var Main=require('./components/Main.jsx');
ReactDOM.render(
,document.getElementById('容器')
);
在main.jsx文件中,我想从不同的文件调用两个react类:

    var comp1 = require('./comp1.jsx')
    var comp2 = require('./comp2.jsx')
    const MyMainComponent = React.createClass({
    return(
       <comp1></comp1>
       <comp2></comp2>
    );
    });
    module.exports = MyMainComponent;
var comp1=require('./comp1.jsx')
var comp2=require('./comp2.jsx')
常量MyMainComponent=React.createClass({
返回(
);
});
module.exports=MyMainComponent;
在comp1文件中,我有一个简单的按钮和对话框:

var comp1 = React.createClass({
return(
<RaisedButton label="comp1" primary={true} onTouchTap={this._handleTouchTap} />
<dialog name = "test"></dialog>
_handleTouchTap: function(){
test.show()
};);
var comp1=React.createClass({
返回(
_handleTouchTap:function(){
test.show()
};);

在我的comp2文件中,除了重命名按钮外,我的代码与comp1.jsx完全相同我编写了上面的代码,所以我不确定一般原则或语法是否正确,但我在很高的层次上询问如何实现我上面描述的目标。谢谢你,我想你需要的是异步模块定义(AMD)。 您可以使用requirejs实现这一点

首先,您必须对其进行配置,您可以在app.js文件或任何您想要的文件中进行配置:

require.config({
  paths: {
    react: 'vendor/react',
    reactDOM: 'vendor/react-dom',
    JSXTransformer: 'vendor/JSXTransformer'
  }
});

require(['reactDOM', 'jsx!main'], function(ReactDOM, Main) {
    ReactDOM.render(<Main />, document.getElementById('container'));
});
main.jsx

define(['jsx!comp1', 'jsx!comp2'], function(Comp1, Comp2) {
    var Main = React.createClass({
        render: function() {
            return (
               <section>
                   <Comp1 />
                   <Comp2 />
               </section>
            );
        }
    });

    return Main;
});
define(['jsx!comp1','jsx!comp2'],函数(comp1,comp2){
var Main=React.createClass({
render:function(){
返回(
);
}
});
回水总管;
});
最后,在HTML文件中:

<script data-main="js/app" src="js/vendor/require.js"></script>

如果你是初学者,这可能看起来很复杂,但在处理大型项目时,这是值得的,所以最好养成习惯


我还建议您选择一些关于编程的书籍。试试Javascript的好部分,务实的程序员

您使用的是node.js吗?您想在服务器端呈现react类吗?@LyesBEN否,在此之前,我想知道如何将类包含在另一个类中。基本上,在不同的t文件我想将它们合并到一个组件中。你想将不同文件中的组件一起使用吗?@LyesBEN是的,没错。facebook提供的文档是为了在同一个文件中声明这些组件,但如果我在不同的文件中声明这些组件,我似乎无法让它工作。
<script data-main="js/app" src="js/vendor/require.js"></script>