[英]How can I remove colon (:) from API URL in React project
我正在尝试使用动态 ID 从 API 获取数据。 我的路线路径中有冒号。 调试问题后,我注意到冒号包含在链接中的 id 之前,因此获取请求失败。 请问我该如何解决这个问题。 我的意思是,我将请求发送到 ap1.yoursite.com/:111 而不是 ap1.yoursite.com/111,这导致 fetch 对象保持为空。 如何让冒号作为动态路径工作,但不干扰我的 URL?
//我的路线和//获取片段
const Main = props => (
<Switch>
<Route exact path="/" component={Goods} />
<Route path="/items:id" component={SingleGoods} />
</Switch>
);
const { id } = this.props.match.params;
console.log(id); //returns :number
fetch(`http://api.yoursite/${id}`)
.then(response => response.json())
.then(json => this.setState({ show: json }));
console.log(this.state.show); //always returns null, which is the initial state
我不确定我是否理解正确,但我认为:
<Route path="/items:id" component={SingleGoods} />
应该
<Route path="/items/:id" component={SingleGoods} />
路径中的另一个斜线。
试试<Route path="/items/:id" component={SingleGoods} />
,注意参数前的“/”。
您是否打算使用类似这样的路径: /items/11
然后使用此id
发出 fetch 请求? 如果是,则将您的第二条Route
更改为:
<Route path="/items/:id" component={SingleGoods} />
因此,当您访问/items/11
您可以在SingleGoods
组件中使用此 ID。
请参阅: 响应路由器 URL 参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.