params中的冒号在重定向时解析querystring



"react-router": "^1.0.2"

这是重定向路线:

javascript <Redirect from="/organize/folder(/:id)" to="/organize/(:id)" />

其中id的形状为someUser:88

因此,给定URL: http://localhost/organize/folder/someUser:88

我们希望重定向能将我们带到: http://localhost/organize/someUser:88

但是,:似乎正在进行查询字符串解析,结果是: http://localhost/organize/someUser%3A88

因此,解析后的字符串有效,但以前版本的react router会维护未解析的id,并将其传递给重定向。

我可能缺少什么吗?也许是一个不自动解析参数的配置选项?我尝试了使用:以外的其他字符,例如~,所有其他字符似乎都能工作。

也许是react路由器在某个地方解析参数的:,并最终解析所有这些参数?

提前谢谢。

colon用于解析变量。

这是我的解决方案:

function enterIndex(nextState, replace) {
  replace('/folder/someUser:88');
}
...
<IndexRoute onEnter={ enterIndex } />
...

<Route path="folder/:id" onEnter={ enterIndex } />

希望它能帮助你。

最新更新