Пожалуйста!
Спасибо!
Дима, привет!
>> Получаю uri на странице копании из урл - там слэши убраны, то есть жду place/10782/amorales_brewery, а прилетает place10782amorales_brewery
Это все потому что ты не учишь матчасть. Всю подобную отладку надо выводить в console.log(), потому что там ты увидишь результат без лишних преобразований. А ты что делаешь? Выводишь в реакт. Это хорошо хоть там массив и ты хоть что-то увидел. А был бы объект, получил бы и вовсе ошибку.
Так вот, реакт массивы как есть не выводит, тем более string[]. В данном случае он выполнил перед выводом uri.join(""). Смотри оффдоку https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/join
Там как раз есть пример
У тебя просто все строчные элементы массива в одну строку без разделителя собрались и все. Пусть это будет тебе горьким уроком.
И еще: я свое для примера дал. В твоем случае правильней прописать правило /places/[...uri], потому как сейчас у тебя туда вообще все будет залетать, для чего роутинг не прописан, включая страницы пива.
Николай, привет!
Сделал роутинг по [uri] - коммит
Получаю uri на странице копании из урл - там слэши убраны, то есть жду place/10782/amorales_brewery, а прилетает place10782amorales_brewery
Здесь place = статика
10782 = place_id
amorales_brewery = url_name
То есть если вытащить place_id, то видимо по нему можно длобыть данные о компании через https://github.com/Pivkarta/pivkarta.ru-2/blob/master/src/gql/Query/Company.graphql
Но не очень понятно, как этот place_id выковарить из полученного uri, если без разделителей.
Можешь подсказать?
uri брать сильно надежней.
Вообще-то это: /place/10192/glavpivmag-v-pyatnickom у нас напрямую забито в бд - параметр uri
Тогда я вообще какую-то ерунду придумал - надо брать uri и пользовать.
Изучаю примеры.
Правило, имелось ввиду типа /place/[url_name].tsx
Для УРЛа /place/pivovarennaya_kompaniya_ooo_dok-n-dan_piv_ko такое сгодится. Но у тебя же на сайте адреса типа /place/10192/glavpivmag-v-pyatnickom, то есть твое такое правило не подходит. А если есть адреса типа /place/pivovarennaya_kompaniya_ooo_dok-n-dan_piv_ko, то надо еще одно правило создавать.
Ну а за основу можешь взять эту страницу: https://github.com/Pivkarta/pivkarta.ru-2/blob/327007dc245ac4c38d18a94565e1b20b797b3c1d/src/pages/Comments/Comment/index.tsx
Но более комплексный и универсальный пример вот этот: https://github.com/gorodskie-bani-ru/nextjs/blob/56861d0e5556a4d4de1e582a8ee8048b4fe5c903/src/pages/Resource/index.tsx
В нем перехватываются все страницы и в зависимости от типа возвращенного по АПИ объекта выводится та или иная вьюха. Правило для нее вот это используется: /[...path].tsx
http://localhost:3100/place/pivovarennaya_kompaniya_ooo_dok-n-dan_piv_ko
Правило: <Link href={'/place/' + company.url_name || '/'}>
Вот я писал: Особенно сложно оценивать, когда не говоришь под какой именно УРЛ пытаешься создать правило.
Напиши какой УРЛ пытаешься запросить и напиши какое правило пытаешься для него создать (путь к файлу от корня проекта).
Какой УРЛ ты пытаешься запросить и какое правило прописал?
Николай, роутинг сделал: https://github.com/Pivkarta/pivkarta.ru-2/commit/5ef0983f98145e4e5223de8109e38f5d02118f8b
Теперь надо по url_name вытащить данные компании из бд. Что можно взять за образец?