【react】Loading chunk failedでdynamic importができなくなったときの対処法

コードを分割して初回読み込みをチューニングする手段の中の一つに

dynamic importというものがあります。

こちらは、あらかじめ読み込みたいファイルのみを読み込み、ボタンを押したときや

render時などの特定のタイミングで別のファイルを読み込ませるテクニックの一つです。

先に主要部分のファイルだけ読み込んでおけばユーザーを待たせることなく

、後でボタンをタップなどのアクションに合わせてコンポーネント

を出せばいいだけなのでかなりお手軽だなと思い実装。

ところが関数を作ってビルドをするとLoading chunk 0 failedで読み込みエラー発生。

原因は、app.jsのRouteで作成漏れでした。

Dynamic Importをするときは、必ず

</pre>
import Test from './test';

<HashRouter>
<Switch>

<Route exact path="/test" component={Test} />

</Switch>
</HashRouter>
<pre>

と定義する必要がありました。

 

後は主要ファイルの中で切り離したいコンポーネントを

以下のように組み立ててコンポーネントとして差し込めば

完成です。

 

</pre>
main.js

render() {

const SubConponent = Loadable({
loader: () => import('./subcomponent'),
loading: Loading,
});

return(

<SubConponent/>

);

}
<pre>
>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG