我想比较我的windows.location.href
(网址)的一部分是否等于变量。
因此,我有一个名为ID的特定变量,它是一个常量,例如A,B,C,D ..现在,我的url为当前http://localhost:3000/section/A
的格式,我想将A与A的ID,但我无法写逻辑。.请帮助!
我的react应用程序中有各个部分的导航。因此,单击“简介”(按ID = A分类)将href更改为http://localhost:3000/section/A
,单击名为“背景”的第二部分(按ID = B分类)将href更改为http://localhost:3000/section/B
答案 0 :(得分:0)
关于window.location.href.search(A)> -1是什么?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search
答案 1 :(得分:0)
作为临时解决方法,这里是一个简单的解决方案
您可以使用/分割网址,以获取由/分隔的网址部分数组,然后获取该数组的最后一个元素
const lastPartOfUrl = window.location.href.split('/').pop()
if (lastPartOfUrl === ID) {
// logic
}
更好的方法是使用React Router,以便您可以使用withRouter hoc为路由定义参数并在组件中获取参数值。 https://reacttraining.com/react-router/web/api/withRouter
您需要做的就是从react路由器中导入withRouter,然后用该函数包装您的组件。
withRouter(MyComponent)
然后您可以在道具中访问参数,例如:
const { match: { params } } = this.props
答案 2 :(得分:0)
如果该网址显示在您的地址栏中,则表示
var urlID = window.location.href.substr(window.location.href.lastIndexOf('/') + 1)
是在URL中查找ID值的解决方案,您可以将其与您拥有的ID常量进行比较。
// For eaxmaple you could do something like...
switch (urlID) {
case "A":
// do something
break;
case "B":
// do something
break;
// et cetera.
}
// or you could do something like...
if (ID === urlID) {
// do something
}