Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 如何从变量或道具-动态路由器导入组件_Javascript_Reactjs_Django_Webpack_React Router - Fatal编程技术网

Javascript 如何从变量或道具-动态路由器导入组件

Javascript 如何从变量或道具-动态路由器导入组件,javascript,reactjs,django,webpack,react-router,Javascript,Reactjs,Django,Webpack,React Router,好的解决方案的背景(底部的简短问题) 我有一个数据库(API),它可以生成AppA、AppB、AppC等应用程序的数据列表,并带有它们的名称、路径 有了地图,我会根据这个数据列表(在主中)生成(react router)到这些应用程序的链接 在Function.requirensure[作为e]() 评估时(webpack:///./src/components/AppCaller.js?:45:36) 初始值为ElazyComponentType时(webpack:///./node_modu

好的解决方案的背景(底部的简短问题)

我有一个数据库(API),它可以生成AppA、AppB、AppC等应用程序的数据列表,并带有它们的名称、路径

有了地图,我会根据这个数据列表(在主
中)生成(react router)到这些应用程序的链接
在Function.requirensure[作为e]()
评估时(webpack:///./src/components/AppCaller.js?:45:36)
初始值为ElazyComponentType时(webpack:///./node_modules/react-dom/cjs/react-dom.development.js?:1432:20)
在readLazyComponentType(webpack:///./node_modules/react-dom/cjs/react-dom.development.js?:11862:3)
...
requirensure@main.js:106
eval@AppCaller.js:45

0.main.js:1加载资源失败:服务器响应状态为404(未找到)

大家好

所以,这不是一个反应,而是一个网页问题

当您使用React lazy导入特定组件,并使用
npm run dev(或build)
webpack“编译”时,按Chunck拆分代码,但配置文件错误。 这是我的配置文件,它可以工作:

module.exports = {
    output: {
    filename: 'App.js',
    publicPath: '/static/frontend/',
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  }
};

我需要将“公共路径”添加到“chunck”脚本的路径中。:)

使用
React.lazy
时显示的完整错误消息是什么?您可以单击以包含问题的详细信息。感谢cbr提供您的答案,使用完整错误消息编辑的消息您可以包含消息所指的错误吗?它说“上面的错误”-请添加该错误。是的,对不起,在chrome中筛选了错误。我没有看到其他错误:)您是否尝试改用ES5“require”
import React from "react";
import Window from "./dashComponents"
import subApp from "./Apps/Store"

 class AppCaller extends React.Component {

  render() {
    return (
        <Window name={this.props.name}>
            <subApp/>
        </Window>
    )
  }
}

export default AppCaller

import subApp from this.props.path 
import React, {Suspense} from "react";
import Window from "./dashComponents"
//import subApp from "./Apps/Store"

    const path = this.props.path
    let name = this.props.name

 function AppCaller() {

    const SubApp = React.lazy(() => import('./Apps/'+name))


    return (
        <Window name={name}>
            <Suspense fallback={<h2>"Chargement..."</h2>}>
                <SubApp/>
            </Suspense>
        </Window>
    )

}

export default AppCaller

 class AppCaller extends React.Component {

  render() {

    const SubApp = React.lazy(() => import('./Apps/'+this.props.name));

    return (
        <Window name={this.props.name}>
            <Suspense fallback={"Chargement..."}>
                <SubApp/>
            </Suspense>
        </Window>
    )
  }
}

export default AppCaller
module.exports = {
    output: {
    filename: 'App.js',
    publicPath: '/static/frontend/',
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  }
};