删除'%20'来自URL - React-Router

时间:2018-04-06 14:51:16

标签: javascript reactjs react-router jsx react-router-v4

我正在使用反应,我遇到了一个问题,虽然是一个美学问题,而不是一个功能问题。

我正在从名称API生成react-route s。路线工作正常,但由于名称有空格,它们在网址中显示为:example.com/lookup/David%20Attenborough

示例:<Link to='{/lookup/' + props.data.name}>{props.data.name}</Link>

我是否有一种聪明的方法可以移除空格:example.com/lookup/DavidAttenborough或甚至使用+-来替换空格而不会失去react-router的结构完整性。

2 个答案:

答案 0 :(得分:1)

实际上,+无效作为路径中空格的编码,仅在查询字符串中有效。请参阅When to encode space to plus (+) or %20?https://github.com/ReactTraining/react-router/issues/2407

你无法做你想要的事情

答案 1 :(得分:0)

您可以使用正则表达式在网址中放置(-或+) 例子

let name = props.data.name;
name = name.replace(/\s+/g, '-');
const url = `/lookup/${name}

<Link to={url}>{props.data.name}</Link>

您可以添加+或-