当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何使用React.lazy?

笪波鸿
2023-05-20

使用React.lazy如果从一个库中一次性导入多个组件?

const Module = React.lazy(() => {
    return new Promise((resolve: any, reject) => {
        import('moduleCom')
            .then(module => {
                resolve(module)
            })
            .catch(err => {
                reject(err)
            })
    })
})


<Module.A/>
<Module.B/>
<Module.C/>

moduleCom中有A、B、C三个组件,按照以上写法会报错。
只能一个一个import吗?

const A = React.lazy(() => {
    return new Promise((resolve: any, reject) => {
        import('moduleCom')
            .then(module => {
                resolve(module.A)
            })
            .catch(err => {
                reject(err)
            })
    })
})
const B = React.lazy(() => {
    return new Promise((resolve: any, reject) => {
        import('moduleCom')
            .then(module => {
                resolve(module.B)
            })
            .catch(err => {
                reject(err)
            })
    })
})
const C = React.lazy(() => {
    return new Promise((resolve: any, reject) => {
        import('moduleCom')
            .then(module => {
                resolve(module.C)
            })
            .catch(err => {
                reject(err)
            })
    })
})


<A/>
<B/>
<C/>

共有1个答案

房光临
2023-05-20
const A = React.lazy(() => import('moduleCom').then(module => ({ default: module.A })));
const B = React.lazy(() => import('moduleCom').then(module => ({ default: module.B })));
const C = React.lazy(() => import('moduleCom').then(module => ({ default: module.C })));

然后你可以在你的组件里:

<Suspense fallback={<div>Loading...</div>}>
  <A />
  <B />
  <C />
</Suspense>
 类似资料:
  • 问题内容: 我想知道在使用selenium时如何禁用javascript,以便可以测试服务器端验证。 我找到了这篇文章,但我不知道该怎么做。就像我制作此javascript文件,然后呢? http://thom.org.uk/2006/03/12/disabling-javascript-from- selenium/ 问题答案: 编辑 在此期间,确实出现了更好的替代方法,请参见其他答案,例如 如

  • 问题内容: 我在应用的样式时遇到了麻烦。我试过了: 这 什么都不做 ; 不会应用任何宽度样式。有没有一种类似jQuery的方式就可以应用这种样式而无需覆盖(这意味着我需要先对其进行解析等)? 编辑 :我应该补充一点,我有一个样式表,该样式表中有我要用内联样式覆盖的样式,因此使用等不起作用,因为它被我的外部样式覆盖。 此外,将覆盖以前的值的值 进行计算 ,所以我不能简单地创建另一个外部风格。 问题答

  • 问题内容: 如何使用链接调用JavaScript代码? 问题答案: 要么 编辑: 上面的回答确实不是一个好的解决方案,自从我最初发布以来,已经学到了很多有关JS的知识.

  • 问题内容: 我正在连接到一个网站,正在登录。 该网站将我重定向到新页面,并且Mechanize处理所有cookie和重定向作业,但是,我找不到最后一页。我使用Firebug并再次完成了相同的工作,然后发现我必须通过Mechanize传递另外两页。 我快速浏览了一下页面,发现有一些JavaScript和HTML代码,但由于它看起来不像普通的页面代码而无法理解。这些页面是做什么用的?他们如何重定向到其

  • 问题内容: 如何使用Javascript 添加CSS规则(例如)? 问题答案: 您也可以使用DOM Level 2 CSS接口(MDN)执行此操作: …(除了(自然地)IE8和更早版本以外的所有版本),它使用自己的边际差异措辞: 与createElement-set- innerHTML方法相比,此方法具有理论上的优势,因为您不必担心在innerHTML中放置特殊的HTML字符,但实际上,样式元素

  • 问题内容: 我有一些绝对必须使用实现的代码。例如,我要编写这样的程序: 有没有办法用Javascript做到这一点? 问题答案: 绝对!有一个名为Summer of Goto的项目,它使您可以最大程度地使用JavaScript,并将彻底改变您编写代码的方式。 这个JavaScript预处理工具可让您创建标签,然后使用以下语法转到标签: 例如,问题中的示例可以编写如下: 请注意,您不仅限于无穷无尽的