Heim  >  Fragen und Antworten  >  Hauptteil

Implementieren Sie den dynamischen Modulimport in React Native Expo

<p>Wenn meine <strong>React Native</strong> Expo-App (die in einer Expo Go-App ausgeführt wird) derzeit einen <code>import/from</code></p> <pre class="brush:php;toolbar:false;">import Foo, {Bar} aus "foo";</pre> <p>Wie kann ich dies in einen dynamischen Import umwandeln, der nur importiert, wenn eine bestimmte Bedingung erfüllt ist, z. B. wenn <code>hello === "world"</code>? </p> <p>Die folgenden Aktionen führen zum Absturz der Anwendung mit dem Fehler <code>non-std C++-Ausnahme</code>. </p> <pre class="brush:php;toolbar:false;">if (hello === "world") { import Foo, {Bar} aus „foo“; }</pre> <p>Die folgende Problemumgehung wurde versucht, führt aber immer noch zu einem Absturz mit einer <code>nicht standardmäßigen C++-Ausnahme</code>: </p> <pre class="brush:php;toolbar:false;">if (hello === "world") { const Foo = import('foo') const Bar = Foo.Bar }</pre></p>
P粉885562567P粉885562567418 Tage vor503

Antworte allen(1)Ich werde antworten

  • P粉744691205

    P粉7446912052023-08-29 09:13:52

    您可以使用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()回调函数中。此外,您应确保任何依赖于导入模块的代码只有在模块加载完成后才执行。

    Antwort
    0
  • StornierenAntwort