Javascript 如何从URL获取帖子的id
我有一个如下格式的URL:Javascript 如何从URL获取帖子的id,javascript,reactjs,Javascript,Reactjs,我有一个如下格式的URL: http://localhost:3000/post/5dc07270e7179a5293d14e70 在/post/后面的部分包含一个id,如您所见。我通过以下方式获得了它: const path = this.props.location.pathname; const postId = path.slice(6, 30); 是否有更好的方法在React中获取该id?您可以在“/”上拆分,并使用负索引切片结果(如果id始终是路径的最后一部分) console
http://localhost:3000/post/5dc07270e7179a5293d14e70
在/post/后面的部分包含一个id,如您所见。我通过以下方式获得了它:
const path = this.props.location.pathname;
const postId = path.slice(6, 30);
是否有更好的方法在React中获取该id?您可以
在“/”上拆分,并使用负索引切片结果(如果id始终是路径的最后一部分)
console.log(“http://localhost:3000/post/5dc07270e7179a5293d14e70.split(“/”).slice(-1)[0])代码>当然,您可以预处理该字符串并从中获取id,但为了更光明的未来,您应该以另一种方式进行处理
一个更好使用的例子是,因为它允许您在URL中定义参数,并且您可以很容易地获得这些参数。您可以使用withRouter获取道具中的历史和位置详细信息。从那里你可以用“/”分割url,长度-1将是你的id
或者你可以使用原始javascript
let url = window.location.href.split('/')
console.log(url[url.length - 1])
如果在url中没有像这样指定id
?id=yourid
然后,id必须位于url的末尾才能工作。如果使用react router dom,请使用通过With router
注入的属性match
,然后访问match.params
。当然,路由
必须以一种方式定义,以接受paramRe“…包含一个id,如您所见。我通过执行以下操作来获得它”:这是否实际输出id?它不输出“/localhost:3000/post/5dc
”吗?