Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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 在SystemJS中延迟导入_Javascript_Reactjs_Systemjs_Jspm - Fatal编程技术网

Javascript 在SystemJS中延迟导入

Javascript 在SystemJS中延迟导入,javascript,reactjs,systemjs,jspm,Javascript,Reactjs,Systemjs,Jspm,我刚刚开始在React中使用SystemJS/JSPM。在我的应用程序中,我使用了一些非通用JS模块格式的第三方库,如AMD、CJS等,因此当我安装这些库时,它们将作为全局模块安装。例如,以下是JSPM为一个库生成的JS文件: module.exports = require("npm:admin-lte@2.3.3/dist/js/app.js"); 该库在导入时运行一些初始化代码,因此它希望DOM元素在此之前准备就绪。如果我将其导入并与以下内容一起使用: import adminlte f

我刚刚开始在React中使用SystemJS/JSPM。在我的应用程序中,我使用了一些非通用JS模块格式的第三方库,如AMD、CJS等,因此当我安装这些库时,它们将作为全局模块安装。例如,以下是JSPM为一个库生成的JS文件:

module.exports = require("npm:admin-lte@2.3.3/dist/js/app.js");
该库在导入时运行一些初始化代码,因此它希望DOM元素在此之前准备就绪。如果我将其导入并与以下内容一起使用:

import adminlte from "adminlte";

export default class Root extends React.Component {
    render () {
        return (
            <div className="wrapper">
                <MainHeader />
                <MainSidebar />
                <MainContent />
                <MainFooter />
                <ControlSidebar />
            </div>
        );
    }
}
从“adminlte”导入adminlte;
导出默认类根扩展React.Component{
渲染(){
返回(
);
}
}
它不起作用了。我猜是因为在React将DOM呈现到浏览器中之前,已经导入了库并运行了它的初始化代码。那么,有没有办法延迟第三方库的导入,直到React呈现DOM为止


我在React中查看了一些生命周期事件,如componentDidMount等,但仍然不确定如何正确执行此操作

最后,在主应用程序已加载后,使用System.import()导入第三方库以解决此问题:

<script type="text/javascript">
    System.import("js/app/main.js")
        .then(() => {
            System.import("adminlte");
        });    
</script>

System.import(“js/app/main.js”)
.然后(()=>{
系统导入(“adminlte”);
});    

这可能不是解决此问题的最佳方法,因此如果其他人有更好的方法,请建议使用它

import
语句,不幸的是不能像
require()
语句那样有条件地或动态加载语句