「ユニバーサル」アプリ (react-router、redux、webpack - 主にhttps://github.com/erikras/react-redux-universal-hot-exampleに基づく) でコード分割の実装を開始しました。
コード分割が実装されている (唯一の) ルートで、ブラウザーを完全に更新すると、次の React エラー メッセージが表示されます。
warning.js:44Warning: React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:
(client) <!-- react-empty: 1 -
(server) <div class="root" dat
コード分割を無効にすると、エラー メッセージは表示されなくなります。これは、Javascript チャンクが Webpack ローダーによって読み込まれる前に React が最初のレンダリングを行ったためであると推測しています。そのため、サーバーで生成されたものとは異なるマークアップが生成されます。あれは正しいですか?
- エラーメッセージについて心配する必要がありますか?
- このメッセージが発生した正確な時間に React が何をレンダリングするかを把握する方法はありますか?
- メッセージを消すための修正はありますか? (コード分割を使用しない以外)