А так быть не должно. Подскажите как решить такую проблему
Если подробнее:
Делаю Интернет-магазин на Реакте (в рамках учебного проекта)
На данный момент сделал роуты для нескольких страниц
[JS]
<Route path="/" ... /> // главная страница
<Route path="/tablets" ... /> // страница категорий
<Route path="/tablets/:id" ... /> // детальная страница товара
[/JS]
И это все работает хорошо
Проблема с роутингом началась когда я начал делать табы на детальной странице товара. Их я тоже хотел сделать через роутинг.
[JS]
<Route path="/tablets/:id/characteristics" ... />
<Route path="/tablets/:id/opinion" ... />
<Route path="/tablets/:id" ... /> // по дефолту
[/JS]
Пути у табов:
[JS]
to=`${ текущий урл страницы }/characteristics` // Таб "Характеристки"
to=`${ текущий урл страницы }/opinion` // Таб Отзывы
to=`${ текущий урл страницы }` // Таб "Описание" (по дефолту)
[/JS]
Вот в этом и проблема. Как такое решить?
Дело в том что location.pathname я передаю через props дочернему компоненту, он принимает его и в state я добавляю ему
[JS]`${ this.props.pathName }/characteristics`[/JS]Вот код, как это выглядит:
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
yaparoff
Если в кратце, проблема возникает из за того что когда заходим на страницу изначально текущий урл страницы
http://localhost:3004/tablets/tablet_1
Если мы покликаем по табам (у которых тоже реализован роутинг и к урлу добавляется еще значение)
То урл будет менять свое значение например на
http://localhost:3004/tablets/tablet_1/characteristics
И вот, допустим у нас сейчас этот урл и если страница перезагрзиться, то реакт будет считать что текущий урл уже
http://localhost:3004/tablets/tablet_1/characteristics
а не
http://localhost:3004/tablets/tablet_1 как предполагается
И из за этого возникают проблемы
Могут быть вот такие страницы
localhost:3004/tablets/tablet_1/characteristics/characteristics
А так быть не должно. Подскажите как решить такую проблему
Если подробнее:
Делаю Интернет-магазин на Реакте (в рамках учебного проекта)
На данный момент сделал роуты для нескольких страниц
[JS]
<Route path="/" ... /> // главная страница
<Route path="/tablets" ... /> // страница категорий
<Route path="/tablets/:id" ... /> // детальная страница товара
[/JS]
И это все работает хорошо
Проблема с роутингом началась когда я начал делать табы на детальной странице товара. Их я тоже хотел сделать через роутинг.
[JS]
<Route path="/tablets/:id/characteristics" ... />
<Route path="/tablets/:id/opinion" ... />
<Route path="/tablets/:id" ... /> // по дефолту
[/JS]
Пути у табов:
[JS]
to=`${ текущий урл страницы }/characteristics` // Таб "Характеристки"
to=`${ текущий урл страницы }/opinion` // Таб Отзывы
to=`${ текущий урл страницы }` // Таб "Описание" (по дефолту)
[/JS]
http://skrinshoter.ru/s/221019/1f36Q0Gw
И это работает исправно, до тех пор пока страница не перезагрузиться.
Прикол в том, что если мы кликали по табам, урл менялся и допустим стал таким :
http://localhost:3004/tablets/tablet_1/characteristics
И потом вдруг страницу перезагрузили
А при перезагрузке страницы текущий адрес получается уже
http://localhost:3004/tablets/tablet_1/characteristics
а не
http://localhost:3004/tablets/tablet_1
как задумывалось.
Из-за этого возникают проблемы когда кликаешь по табам:
адрес получается уже
http://localhost:3004/tablets/tablet_1/characteristics/characteristics
http://skrinshoter.ru/s/221019/eTe8ZW5F
Вот в этом и проблема. Как такое решить?
Дело в том что location.pathname я передаю через props дочернему компоненту, он принимает его и в state я добавляю ему
[JS]`${ this.props.pathName }/characteristics`[/JS]Вот код, как это выглядит:
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.