在React Native Expo中实现动态模块导入
P粉885562567
P粉885562567 2023-08-28 15:01:05
[JavaScript讨论组]
<p>如果我的<strong>React Native</strong> Expo应用程序(在Expo Go应用程序中运行)当前执行一个<code>import/from</code></p> <pre class="brush:php;toolbar:false;">import Foo, {Bar} from &quot;foo&quot;;</pre> <p>如何将其转换为动态导入,仅在满足某个条件时导入,例如当<code>hello === &quot;world&quot;</code>时?</p> <p>以下操作会导致应用程序崩溃并显示错误<code>non-std C++ exception</code>。</p> <pre class="brush:php;toolbar:false;">if (hello === &quot;world&quot;) { import Foo, {Bar} from &quot;foo&quot;; }</pre> <p>尝试了以下替代方法,但仍然会导致崩溃并显示<code>non-std C++ exception</code>:</p> <pre class="brush:php;toolbar:false;">if (hello === &quot;world&quot;) { const Foo = import('foo') const Bar = Foo.Bar }</pre></p>
P粉885562567
P粉885562567

全部回复(1)
P粉744691205

您可以使用import()函数异步加载模块。以下是一个示例:

let Foo;
let Bar;

if (hello === "world") {
  import("foo").then((module) => {
    Foo = module.default;
    Bar = module.Bar;
  });
}

在这段代码中,import()函数返回一个解析为模块对象的promise。模块对象的default属性被赋值给Foo变量,模块对象的Bar属性被赋值给Bar变量。

需要注意的是,import()函数是异步的,因此任何依赖于导入模块的代码应该放在then()回调函数中。此外,您应确保任何依赖于导入模块的代码只有在模块加载完成后才执行。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号