javascript 从URL中删除'%20'- React-Router

w8ntj3qf  于 12个月前  发布在  Java
关注(0)|答案(3)|浏览(140)

我正在使用react,我遇到了一个问题,尽管是美学问题,而不是功能问题。
我正在从名称的API生成react-route s。路由工作正常,但由于名称中有空格,因此它们在URL中显示为:example.com/lookup/David%20Attenborough
示例:<Link to='{/lookup/' + props.data.name}>{props.data.name}</Link>
有没有一个聪明的方法可以删除空格:example.com/lookup/DavidAttenborough,甚至用+-来替换空格,而不会失去react-router的结构完整性。

sqxo8psd

sqxo8psd1#

实际上,+作为路径中空格的编码是无效的,仅在查询字符串中有效。
你不能做你要求的事

ohtdti5x

ohtdti5x2#

在url示例中,您可以使用正则表达式来输入(-或+)

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

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

字符串
你可以加上+或-

bnl4lu3b

bnl4lu3b3#

这对我来说很有效:

<Link to={`/lookup/${props.data.name.split(` `).join(`-`).toLowerCase()}`}>{props.data.name}</Link>

字符串

相关问题