Невозможно получить часть URL-адреса с помощью маршрутизатора react?

#javascript #reactjs #react-router #react-router-dom

Вопрос:

Как я могу всегда получать одну и ту же часть URL-адреса в react?

пример: 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 / неважно, есть ли что-то после этого или нет.

Комментарии:

1. Вы не должны отображать UUID таблицы клиенту

2. Оке, тогда как мне это исправить, если URL-адрес будет: localhost:3000/поставщик/имя поставщика или localhost:3000/продукт/название продукта

Ответ №1:

Вы можете использовать метод разделения, как показано ниже:

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

Ответ №2:

Просто используйте параметры использования из react router dom

       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>
            );
          }