我正在构建一个反应应用程序,我在客户端上为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
但我遇到了同样的错误。