首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React router v5创建具有两个可选参数的路径

React router v5创建具有两个可选参数的路径
EN

Stack Overflow用户
提问于 2021-10-18 09:51:14
回答 1查看 43关注 0票数 0

如何创建可以同时处理零参数、一个参数、另一个参数或两个参数的路径。

例如:

/offers /offers/q-shoes /offers/London /offers/London/q-shoes

我正在尝试以这种方式实现它,不幸的是,在这种情况下,路径/offers/London没有被捕获

代码语言:javascript
复制
import React from 'react';
import pathToRegexp from 'path-to-regexp';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

import { Home, Browse } from './Pages';

const re = pathToRegexp('/offers/:location?/q-:search?');

const App = () => (
  <Router>
    <Switch>
      <Route path={re}>
        <Browse />
      </Route>
     
      <Route path="/">
        <Home />
      </Route>
    </Switch>
  </Router>
);

export default App;
EN

回答 1

Stack Overflow用户

发布于 2021-10-18 10:17:32

创建指向同一组件的多个路径:

代码语言:javascript
复制
<Route path="/offers/q-shoes">
    <RelevantComponentHere />
</Route>
<Route path="/offers/London">
    <RelevantComponentHere />
</Route>
<Route path="/offers/London/q-shoes">
    <RelevantComponentHere />
</Route>
<Route path="/offers/q-shoes/London">
    <RelevantComponentHere />
</Route>

正如您可能知道的那样,这并不理想。相反,您可以将路径转换为实际的URL参数(例如"/offers?q-shoes=true&London=true")。在这种情况下,您只有一条路径:

代码语言:javascript
复制
<Route path="/offers">
    <RelevantComponentHere />
</Route>

然后,您可以使用useParams或useLocation挂钩来查找相关参数并使用它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69614024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档