routerContext对象上不存在url这个属性值
来源:3-7 服务端渲染优化
小王子抓猫咪
2017-12-18
<Switch>
<Route path="/" exact render={()=>(<Redirect to="/list" />)}/>
<Route path="/list" component={TopicList} />
<Route path="/detail" component={TopicDetail} />
<Route path="/test" component={ApiTest} />
{/*<Redirect to="/list" />*/}
</Switch>上面是我的router路由设定规则
下面是我得server服务端渲染代码
const routerContext = {};
const serverApp = serverBundle(createStoreMap(), routerContext, req.url);
const content = ReactSSR.renderToString(serverApp);
// 当渲染结束之后通过检查routerContext对象是否具有url属性来判断是否是路由跳转
if(routerContext.url){
// eslint-disable-next-line
console.log(`routerContext.url = ${routerContext.url}`);
res.status(302).setHeader("Location", routerContext.url);
res.end();
return;
}
res.send(content.replace("<!--app-->", content));当我访问/根路径时并没有在routercontext对象上添加url 所以中间这段302跳转并没有执行
有没有和我遇到一样问题的小伙伴?
写回答
1回答
-
小王子抓猫咪
提问者
2017-12-18
00