Coder Social home page Coder Social logo

react's Introduction

steroids

steroids

react's People

Contributors

affka avatar antonovaekaterina avatar asgardpavlov avatar azyabon avatar bitdittowit avatar coffeeeeee avatar daria-kuzminykh avatar dependabot[bot] avatar destroyer-state avatar devmartynov avatar dmitriy-babiy avatar fogarea avatar maelstrom-ci avatar nicolaak avatar perlexed avatar raaynoff avatar sanfrantest avatar sergeikaluckij avatar shakuchi avatar stiivenson avatar syomx1 avatar u-ok avatar vkoktashev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

react's Issues

Некорректная работа роутинга

Глоссарий

МО - обычный маршрут. Маршрут в конфигурации которого не указано поле role либо не является одним из значений 'login' | 'modal' | '404'

МОК - МО, но в url которого есть квери параметры. Пример: /book?page=3

ММ - маршрут-модалка. Маршрут в конфигурации которого есть поле role='modal'

ММК - ММ, но в url которого есть квери параметры. Пример: /book?page=3

НН - нажатие на системную кнопку "Назад" в браузере

--> - переход на маршрут. Пример: --> МО следует читать как "переход на обычный маршрут"

|--> - начальная загрузка. Аналог перезагрузки страницы.

+ - показывает последовательность действий. Пример: |--> МО + --> ММ + НН следует читать как "Загрузка страницы на обычном маршруте, затем переход на маршрут-модалку, затем нажатие на системную кнопку 'назад' в браузере"

x - закрытие модального окна

Тест кейсы

  1. |--> МО
  2. |--> МО + --> ММ + НН
  3. |--> МО + --> ММ + x
  4. |--> МО + --> ММК + НН
  5. |--> МО + --> ММК + x
  6. |--> МОК
  7. |--> МОК + --> ММ + НН
  8. |--> МОК + --> ММК + НН
  9. |--> МОК + --> ММ + x
  10. |--> ММ
  11. |--> ММ + x
  12. |--> ММ + --> МО + НН
  13. |--> ММК + --> МО + НН

Примеры некорректной работы

  1. |--> МО + --> ММ + x

/book/kray-rodnoy/chapter_2 --> /book/kray-rodnoy/chapter_2/dictionary/1 + x = /book/kray-rodnoy/chapter_2?articleId=1

  1. |--> МО + --> ММК + x

/book/kray-rodnoy/chapter_2 --> /book/kray-rodnoy/chapter_2/audio-text?audioId=2 + x = /book/kray-rodnoy/chapter_2?audioId=2

  1. |--> МОК + --> ММ + x

/book/kray-rodnoy/dictionary?chapterId=2 --> /book/kray-rodnoy/dictionary/1 + x = /book/kray-rodnoy/dictionary?articleId=1

Некорректная работа заключается в том, что после закрытия ММ либо ММК в родительский маршрут попадают ненужные квери параметры либо удаляются нужные квери параметры и добавляются ненужные. Исправление может сказываться на других тест кейсах, поэтому после исправления некорректной работы крайне желательно проверить пройтись по всем тест кейсам и убедиться в корректности работы(желательно тестами).

Дополнительно

Связанный PR. В рамках этого MR было сделано исправление, которое сказывается на работе других тест кейсов. А именно стали некорректно работать пункты: 12, 13

Некорректная работа роутера при рендере родительских роутов

Имеется следующий конфиг роутера:
image
Для отображения роутов используется компонент Tree
image
Роуты в нем отображаются корректно, однако без указания exact: true для ROUTE_MENU и ROUTE_CONTENT при переходе на дочерние роуты ROUTE_CONTENT получаем ошибку
image
В процессе выяснил, что это из-за того, что роутер пытается отрендерить ROUTE_MENU и ROUTE_CONTENT, а для них не указаны path и component. Но это контейнеры для набора других роутов и они не должны рендериться. Указание exact: true для них является скорее нелогичным хаком роутера, так как этот параметр отвечает за то, чтобы рендерить роуты только когда текущий path равен path роута, а для этих роутов path не указан. Указание только path приводит к другой проблеме - дочерние роуты не рендерятся.
Мне кажется нужно учесть роуты подобного вида и не пытаться их рендерить, если у них нет component, но есть дочерние items

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.