Rumah  >  Soal Jawab  >  teks badan

Laksanakan import modul dinamik dalam React Native Expo

<p>Jika apl <strong>React Native</strong> saya (berjalan dalam apl Expo Go) pada masa ini melakukan <kod>import/dari</code></p> <pre class="brush:php;toolbar:false;">import Foo, {Bar} daripada "foo";</pre> <p>Bagaimanakah saya boleh menukar ini kepada import dinamik yang hanya mengimport apabila syarat tertentu dipenuhi, seperti apabila <kod>hello === "dunia"</kod>? </p> <p>Tindakan berikut akan menyebabkan aplikasi ranap dengan ralat <kod>bukan-std C++ pengecualian</code>. </p> <pre class="brush:php;toolbar:false;">if (hello === "world") { import Foo, {Bar} daripada "foo"; }</pre> <p>Mencuba penyelesaian berikut tetapi masih mengakibatkan ranap dengan <kod>bukan-std C++ pengecualian</code>: </p> <pre class="brush:php;toolbar:false;">if (hello === "world") { const Foo = import('foo') const Bar = Foo.Bar }</pre></p>
P粉885562567P粉885562567418 hari yang lalu494

membalas semua(1)saya akan balas

  • P粉744691205

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

    Anda boleh menggunakan fungsi import() untuk memuatkan modul secara tidak segerak. Berikut adalah contoh:

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

    Dalam kod ini, fungsi import() mengembalikan janji yang diselesaikan kepada objek modul. Atribut lalai bagi objek modul diberikan kepada pembolehubah Foo, dan atribut Bar bagi objek modul diberikan kepada pembolehubah Bar.

    Perlu diambil perhatian bahawa fungsi import() adalah tak segerak, jadi sebarang kod yang bergantung pada modul yang diimport hendaklah diletakkan dalam fungsi panggil balik then(). Selain itu, anda harus memastikan bahawa sebarang kod yang bergantung pada modul yang diimport hanya dilaksanakan selepas modul telah dimuatkan.

    balas
    0
  • Batalbalas