javascript - 使用 react 路由器的链接编码 Uri 不起作用

标签 javascript reactjs react-router-dom

我想使用 react-router-dom 的链接标记对 uri 进行编码,但是当我使用 javascript encodeURIComponent 对 uri 进行编码时,它不会在地址栏(url 栏)中显示编码的 uri,尽管我在悬停时看到 uri 已编码。

<Link key={i}  to={encodeURIComponent(item.url)}> {item.text}</Link>  

我是不是遗漏了什么,或者 uri 在 react router dom 中被解码了。

最佳答案

React router dom 中的 Link 在将其推送到历史记录时对其进行解码。
任何人都可以在 github 和相关问题中阅读此问题 路径在 createLocation #505 中解码
https://github.com/ReactTraining/history/issues/505

我通过对 uri 进行双重编码来解决此问题,以便在推送历史记录时解码一次。
encodeURIComponent(encodeURIComponent(item.url))
直到现在我还没有发现任何副作用....希望这可以帮助任何面临这个问题的人。

关于javascript - 使用 react 路由器的链接编码 Uri 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523058/

相关文章:

javascript - 将多个 const = 组合在一个数组中?

javascript - this.props.history.push ("/") 没有将我重定向到主页

javascript - 写入文件只写入最后一项,而不是所有项目,为什么?

javascript - 如何设置音频的持续时间

javascript - 循环中的 HTTP.post() 回调

javascript - 将 script 标签添加到 div 元素并加载代码

reactjs - react-native-background-timer, null 不是一个对象

javascript - React,为每个事件绑定(bind)一个新函数效率低下

reactjs - 当用户未通过身份验证时 react 闪烁的私有(private)路由

reactjs - 使用 ReactDOM.render 添加一个链接作为路由器的子节点会产生 "You should not use <Link> outside a <Router>"