无法使用反应路由器获取部分 URL?

时间:2021-06-08 06:58:02

标签: javascript reactjs react-router react-router-dom

如何在 react 中始终获得 URL 的相同部分?

示例: http://localhost:3000/supplier/924511e8-9056-4c1e-9976-625bf042924e

我只想要“供应商”,但这可以是其他任何东西。所以它有可能是: http://localhost:3000/product/924511e8-9056-4c1e-9976-625bf042924e 然后我想要“产品”

但它也可以只是 http://localhost:3000/supplier/ 在这种情况下我只想要供应商。这可以是任何东西。

我该怎么做?如果我已经用 pathname.slice(0, pathname.indexOf("/") 试过了,但这似乎不起作用。

所以我只想要 http://localhost:3000/want this/ 后面的字符串,不管后面是否有任何内容。

2 个答案:

答案 0 :(得分:1)

您可以使用以下拆分方法:

const url = 'http://localhost:3000/supplier/'
const want_this = url.split('/')[3]

答案 1 :(得分:1)

只需使用 react router dom 中的 useParams

      import {useParams} from "react-router-dom";
      
      
          function Child() {
            // We can use the `useParams` hook here to access
            // the dynamic pieces of the URL.
            let { id } = useParams();

            return (
              <div>
                <h3>ID: {id}</h3>
              </div>
            );
          }