我正在进行服务器端渲染,当我点击root url它工作正常(localhost:8000 /),甚至点击主页上的任何链接(localhost:8000 / black)也可以渲染组件,但是当我直接点击时直接“localhost:8000 / black”,关于如何在服务器上传递适当的黑色道具我是空白的,这样我就可以从服务器获得完整的html页面。 下面是server.js上的render函数代码。
render(path, data={}) {
match({ routes, location: path }, (error, redirectLocation, renderProps) => {
if (error) {
this.res.status(500).send(error.message)
} else if (redirectLocation) {
this.res.redirect(302, redirectLocation.pathname + redirectLocation.search)
} else if (renderProps) {
const appElement = (
<RouterContext
{...renderProps}
createElement={(Component, props) =>
<Component data={data} {...props} />
}
/>
);
this.res.status(200).send(renderToString(appElement))
} else {
this.res.status(404).send('Not found')
}
})
}