javascript - 从reactjs中的URL参数获取原始值
问题描述
我有一个允许用户取消订阅电子邮件的反应组件,并且有一个散列与取消订阅链接一起传递,因此我们知道请求与哪个邮件项目相关联。不幸的是,哈希有时会包含一些特定于 URL 的字符,例如+
和/
。现在我正在做这样的事情来从哈希中获取数据以传递给取消订阅服务:
const query = new URLSearchParams(useLocation().search);
const campaignId = query.get('campaign') ?? '';
问题是,当我将campaign
in 传递给取消订阅时,并且(例如)campaig
哈希中有一个+
,它会被转换为一个空格。
有没有更好的方法来获取这个字符串,或者“取消编码”它?
解决方案
我最终做了一些相当不雅的事情——但它确实有效。我decodeURIComponent()
在上面的评论中使用了@ofri 所建议的,但空格没有被转换回+
. 所以这就是我想出的:
const query = new URLSearchParams(useLocation().search);
const campaignId = query.get('campaignId') ?? '';
// then when we create the axios payload:
campaignId : decodeURIComponent(campaignId.replace(/ /g, '+'))
推荐阅读
- spring-cloud-dataflow - Spring Cloud Data Flow 中子任务的重复端口
- javascript - 您可以以编程方式显示数据列表下拉列表吗?
- html - 将 POST 请求中的工作表单数据转换为 Postman 请求
- python - 如何使用 SQLAlchemy 从 Linux 主机对 SQL Server 使用 Windows 身份验证?
- html - 组件交互 2 向角度
- ios - Firebase Cloud Messaging iOS 远程服务器/自定义消息数据
- php - Freshdesk API 创建带有附件抛出验证错误的注释
- mysql - 连接表并获取特定记录的计数
- excel - 使用 VBA 刷新单个查询的最佳选择
- vba - 过滤表后VBA检查没有结果