javascript - 如何使用 window.location.hash 和 reactjs 获取 url 值?
问题描述
我有这个 url http://localhost:3000/#/consultation/?idc=xxxd?iduser=Hyfzjg2并且我想获取 idc 和 iduser 的值,以便在我的带有 ReactJs 的 API 上使用它。
我试试这个:
let isInitialized = false;
const initialValues = {};
const initValues = () => {
if (isInitialized === false) {
const searchParams = new URLSearchParams(window.location.hash);
const values = [
{ urlKey: "idc", stateKey: "idC" },
{ urlKey: "iduser", stateKey: "idUser" },
];
values.forEach(item => {
const urlValue = searchParams.get(item.urlKey)
if (urlValue) {
initialValues[item.stateKey] = urlValue;
}
});
isInitialized = true;
}
return initialValues;
};
console.log(initValues())
当我运行它时,我得到{}
一个空值。
如何获得idc
and的值iduser
?
解决方案
我认为您的路径构造不正确:
如果您有路径http://localhost:3000/consultation
并且想要添加查询字符串,那将是http://localhost:3000/consultation?idc=xxxx
并且
window.location.search
将会是?idc=xxxx
那时。
# 是页面上某个元素的选择器,例如#section=4,因此您通常会滚动到该部分。这看起来像这样:
http://localhost:3000/consultation#section=4
并且window.location.hash
将是“#section = 4”
推荐阅读
- python - Pillow .show() 未正确显示
- mysql - 如何添加一个联合全部导致一个新列
- django - 在序列化程序 Django 中验证文件扩展名的安全方法
- java - 将实体组装到dto时使用dao是一种好方法吗?
- python - Pandas Apply 函数创建数据框的新实例
- reactjs - 比上一次使用自定义钩子渲染时渲染的钩子更多
- mysql - 无法使用原始 gorm 获得计数
- c# - 循环内的 C# 字符串连接
- django - 如何在 django 中随机订购一些特定的对象?
- c# - 如何通过单击使用 Topshelf 创建的设置应用程序自动启动 Windows 服务