React Native Expo で動的モジュールのインポートを実装する
P粉885562567
2023-08-28 15:01:05
<p><strong>React Native</strong> Expo アプリ (Expo Go アプリ内で実行されている) が現在 <code>import/from</code></p>
<pre class="brush:php;toolbar:false;">import Foo, {Bar} from "foo";</pre>
<p>これを、<code>hello === "world"</code> の場合など、特定の条件が満たされた場合にのみインポートする動的インポートに変換するにはどうすればよいですか? </p>
<p>次の操作を行うと、アプリケーションがエラー <code>非標準 C 例外</code> でクラッシュします。 </p>
<pre class="brush:php;toolbar:false;">if (hello === "world") {
import Foo, {Bar} from "foo";
}</pre>
<p>次の回避策を試しましたが、依然として <code>非標準 C 例外</code> によるクラッシュが発生します: </p>
<pre class="brush:php;toolbar:false;">if (hello === "world") {
const Foo = import('foo')
const Bar = Foo.Bar
}</pre></p>
import() 関数を使用すると、モジュールを非同期的にロードできます。以下に例を示します:
リーリーこのコードでは、import() 関数はモジュール オブジェクトに解決される Promise を返します。モジュール オブジェクトのデフォルト プロパティは Foo 変数に割り当てられ、モジュール オブジェクトの Bar プロパティは Bar 変数に割り当てられます。
import() 関数は非同期であるため、インポートされたモジュールに依存するコードはすべて then() コールバック関数に配置する必要があることに注意してください。さらに、インポートされたモジュールに依存するコードは、モジュールがロードされた後にのみ実行されるようにする必要があります。