Javascript 如何从URL获取帖子的id

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

我有一个如下格式的URL:

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
”吗?