Динамические ссылки с кириллицей - правильно? [ReactJS]
Есть интернет-магазин, есть категории "Компьютеры", "Телефоны" и т.д.
Вопрос: правильно ли делать динамический роутинг с кириллицей в ссылке?
Отрывок кода с динамическим роутом:
enum RoutePublicNames {
CATALOG = "/catalog/:catalogName",
}
const publicRoutes = useRoutes([
{ path: RoutePublicNames.CATALOG, element: <Catalog />}
]);
Ссылка, которую я получил в браузере:
http://localhost:3000/catalog/Компьютеры
Ссылка при копировании и вставке(так же рабочая):
http://localhost:3000/catalog/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D1%8B
Всё работает исправно, однако в браузере вылезает варнинг:
No routes matched location "/catalog/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D1%8B"
Разумно ли я поступаю?
Ответы (1 шт):
В идеальности конечно избавиться от кириллицы в рутере вовсе.
Например заменить её на /catalog/kompjuteri или алиас /catalog/computers.
Но можно поставить хук на history router.
Вот пример: https://stackoverflow.com/questions/50592020
В функциональном программировании это useLocation
Дальше просто прогоняешь строку через (route) => route.pathname = decodeURI(route.pathname)