我正在使用React 16.13.0。在我的组件中,我可以像这样访问查询字符串参数(例如/ url?coop_id = 23)
import { useParams } from "react-router-dom";
...
const { coop_id } = useParams();
但是,如何以RESTful格式访问参数?例如。如果我的URL是/ edit / 23 / home,获取“ 23”的React方法是什么?我已经在src / App.js文件中定义了路由
<Switch>
...
<Route path="/edit/:id/home" component={Edit} />
如果有用的话。
答案 0 :(得分:1)
import { useParams} from "react-router";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
const Portfolio = () => {
let { id } = useParams();
return (
<div>
Portfolio component
<p>Topic: {id}</p>
</div>
);
};
答案 1 :(得分:0)
您可以使用提取ID:
from random import choice
name = choice(["abtin", "shino"])
if name == "abtin" and name == "shino":
答案 2 :(得分:0)
对于/edit/:id/home
,您可以在组件中嵌套路由以进行编辑。
编辑组件可能类似于:
function Edit() {
// We can use the `useParams` hook here to access
// the dynamic pieces of the URL.
let { id } = useParams();
// We can further check if there are other parts available after the /:id
// the path will contain those parts
let { path } = useRouteMatch();
return (
<div>
<h3>ID: {id}</h3>
<Switch>
<Route path={`${path}/home`}>home</Route>
</Switch>
</div>
);
}
您可以根据Edit
之后是否有内容,在/:id
组件中显示不同的内容。
请查看useParams
和useRouteMatch
了解更多详细信息。在https://reactrouter.com/web/example/nesting上查看示例以获取有关嵌套的详细信息。