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