客户端
match({ history: history, routes: routes }, (error, redirectLocation, renderProps) => {
render(
<AppContainer>
<Root store={store} renderProps={renderProps} />
</AppContainer>,
document.getElementById('root')
)
if (module.hot) {
module.hot.accept('./containers/Root', () => {
const NewRoot = require('./containers/Root').default
render(
<AppContainer>
<NewRoot store={store} renderProps={renderProps} />
</AppContainer>,
document.getElementById('root')
)
})
}
})
服务器端
match({ routes, location: req.url }, (error, redirectLocation, renderProps) => {
_renderProps = renderProps
})
if (_renderProps) {
res.render('index', {
root: renderToString(
<Provider store={store}>
<RouterContext {..._renderProps} />
</Provider>
),
state: store.getState()
})
} else {
next()
}