私は反応アプリを構築しており、クライアントでコード分割を行いましたbundle
。を使用しているため、アプリはサーバー上で適切にレンダリングされますSSR
。サーバー上で分割するコードはありませんが、クライアント上では実行します。のクライアントで次の警告が表示されますhydrate
。
Warning: Did not expect server HTML to contain a <div> in <div>.
@loadable/component
クライアントでのコード分割に使用しています
クライアント側に App.js ファイルがあります:-
import React from "react"
import loadable from '@loadable/component'
import { Route, Switch } from 'react-router-dom'
const AsyncHome = loadable(() =>
import('./components/Home/Home')
)
const AsyncPost = loadable(() =>
import('./components/Post/Post')
)
function App(){
return(
<div>
<Switch>
<Route path="/" component={AsyncHome}/>
<Route path="post" component={AsyncPost}/>
</Switch>
</div>
)
}
私は自分のindex.js
ファイルをクライアントに持っています:
import React from 'react'
import { hydrate } from 'react-dom'
import { BrowserRouter} from 'react-router-dom'
import App from './App'
hydrate(
<BrowserRouter><App/></BrowserRouter>,
document.getElementById('app')
)
code-splitting
クライアントでのみ使用してその警告を修正する方法。私も試してみReact.lazy
ましReact.Suspense
たが、同じエラーが発生しています。