我只想发出 AJAX 请求从REACT.JS中的API获取数据,但每个API都需要(id),我想从浏览器中的URL获取该id,我该怎么做?这是我的代码:
componentDidMount(){
fetch("http://localhost:8000/personal/1")
.then(res => res.json())
.then(json => {
this.setState({
isLoaded: true,
information: json,
})
})
我做的API由Laravel,和每件事的工作与上面的代码很好,但正如我所说的,我想从浏览器中的URL的ID不只是写它现在,谢谢你:)}
9条答案
按热度按时间rfbsl7qr1#
在React Hooks中,您应该使用
useParams()
.ex-这是您的url -http://localhost:8000/personal/1
。因此,在本例中,使用
const { id } = useParams()
现在,如果你执行
console.log(id)
,它会给予你url的确切id,在这个例子中,它会给你1。useParams()从url中提取id并让我们使用它。
wmtdaxz32#
您可以使用
react-router-dom
中的history
属性,这里有一个链接详细解释了如何使用该属性,https://tylermcginnis.com/react-router-programmatically-navigate/
如果您想让它变得超级简单,那么使用
window.location
对象怎么样?假设您位于url为
http://localhost:8000/personal/1
的页面上window.location.href
会得到http://localhost:8000/personal/1
window.location.pathname
会得到/personal/1
一旦有了
pathname
或href
,就可以使用常规的字符串函数(如split(...)
)来获取ID。yfwxisqw3#
在Route中,您可以指定一个参数,然后使用useParams获取该参数。
从这里开始,您可以在组件中使用{post.yourdata}。
pu3pd22g4#
对于挂钩用户
nbysray55#
例如,在类组件中,可以通过添加
constructor
访问ID,然后从props
访问IDvwoqyblh6#
如果你在前端使用react,最好使用rect-router,这样你就可以很容易地操作路径参数,并使用
match.params.[paramName]
在你的组件中访问它们。通过使用普通的js,你可以使用
window.location
对象。http://localhost:8000/personal/1 => window.location.pathname = personal/1
[路径参数]http://localhost:8000/personal?id=1 => window.location.search = ?id=1
[搜索参数]如果你使用搜索参数,有一个很好的库query-string来解析它们,当然,如果你使用路径名,你需要手动去除你的参数。
goqiplq27#
记住useParams来自react路由器dom而不是react数据包
iszxjhcz8#
首先,在app.js或navigation.js等导航文件中添加此路线
而不是在登录屏幕或页面上使用此代码获取该值
moiiocjp9#
如果你在React中使用类组件,你可以使用(this.props.match.params.id),这将从url中获取id。