我过去两天一直在学习React,但是在理解URL参数方面遇到了麻烦。
假设我要一条路线mysite.com/details/1023
。路线的定义如下:
<Route path="/details/:id" render={() => <DishDetails />}/>
现在,我希望DishDetails
在另一个文件中定义的对象能够使用id
value 1023
。我怎样才能做到这一点?我找到了有关路由网址参数的教程,但都没有说明如何实现此目的的教程。
这是我DishDetails
现在的样子:
import React, {Component} from "react";
import "./DishDetails.css";
import {Link} from "react-router-dom";
class DishDetails extends Component {
constructor(props) {
super(props);
this.state = {
id: /*url param*/,
};
}
render() {
return this.state.id;
}
}
export default DishDetails;
我在哪里可以获得id
DishDetails?我试过了:
import React, {Component} from "react";
import "./DishDetails.css";
import {Link} from "react-router-dom";
class DishDetails extends Component {
constructor(props) {
super(props);
this.state = {
id: match.id,
};
}
render() {
return this.state.id;
}
}
但是match
是不确定的。
通过组件属性将您的组件传递到Route
:
<Route path="/details/:id" component={DishDetails} />
如果您这样做了,match
则可以在道具中找到。
如果必须保持渲染路线的方式,可以将渲染道具手动传递到组件:
<Route path="/details/:id" render={(props) => <DishDetails {...props} />}/>
您可以在此处找到有关react-router的完整文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句