Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Reactjs获取URL路径名id_Javascript_Jquery_Reactjs - Fatal编程技术网

Javascript Reactjs获取URL路径名id

Javascript Reactjs获取URL路径名id,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我想使用React JS从URL获取id以从API加载数据 让url为空http://localhost:3000/View/22'; //window.location.href原来不是这个 让对象=新的URL; 让path=object.pathname console.logpath // console.logpath.split'/'.pop尝试以下操作: let url = 'http://localhost:3000/View/22'; var id = url.substr

我想使用React JS从URL获取id以从API加载数据

让url为空http://localhost:3000/View/22'; //window.location.href原来不是这个 让对象=新的URL; 让path=object.pathname console.logpath // console.logpath.split'/'.pop尝试以下操作:

 let url = 'http://localhost:3000/View/22';
 var id = url.substring(url.lastIndexOf('/') + 1);
试试这个:

 let url = 'http://localhost:3000/View/22';
 var id = url.substring(url.lastIndexOf('/') + 1);

您可能想做的是使用类似的方法,定义路由并获取组件内的参数。

您可能想做的是使用类似的方法,定义路由并获取组件内的参数。

如果您正在为应用程序取消react router,您可以使用useParams挂钩获取url参数

检查以下链接。

如果您正在为应用程序取消react router,则可以使用useParams钩子获取url参数

检查以下链接。 使用this.props.match.params.id

在路由器中:

<Route exact path='/View/:id' component={View}></Route>
使用this.props.match.params.id

在路由器中:

<Route exact path='/View/:id' component={View}></Route>

但它看起来很脏,对吗?不是真的,没什么问题。如果你真的想,你可以使用regex,但这不是更好,也不是更糟。如果有人输入/View/22/22/33/44/it get 44而不是22,就会出现安全问题。在这种情况下,通过索引访问值,并非总是通过检索最后一个路由器,您是否在应用程序中使用react router?@gnujoow yes Iam@dannycavanagh您总是会在path对象.pathname.match'[0-9]+'[0]中获得第一个数值,但它看起来很脏,对吗?不是真的,没什么问题。如果你真的想,你可以使用regex,但这不是更好,也不是更糟。如果有人输入/View/22/22/33/44/it get 44而不是22,就会出现安全问题。在这种情况下,通过索引访问值,并非总是通过检索最后一个路由器,您是否在应用程序中使用react router?@gnujoow yes Iam@dannycavanagh您将始终在path对象.pathname.match'[0-9]+'[0]中获得第一个数值这并不能解决OP提到的这个问题:如果有人输入/查看/22/22/33/44/它得到44而不是22这并不能解决OP提到的这个问题:如果有人输入/查看/22/22/33/44/它得到44而不是22