Скролинг все равно присутствует. Неважно есть полоса прокрутки или нет полосы у боди, и не важно какой position: fixed или absolute. у меня для боди сейчас стоит overflow: hidden; position: fixed; top: 0 bottom:0; left:0; right:0; Она убрала прокрутку, но я про другой косяк, когда находишься сверху или снизу, и пытаешься прокрутить, а прокрутке уже идит некуда, он перекидывает прокрутку на body, хотя у боди нет прокрутки. Можно глянуть на примере того же appla.com если нажать на меню (главное чтоб меню было с прокруткой) и прокрутить до конца, а потом сделать паузу, и опять попытатся прокрутить внизу, фокус уйдет на боди, и если уже пытаться прокрутить на вверх не получится.
Согласен что правильнее делать через реакт-роутер, но пока хорошего решения не нашел. Спасибо за предложенный вариант, он слишком труден в поддержки кода.
Anton Bobylev: не согласен на счет модальных окон, всё зависит от типа контента в нём, и самого вида модального окна, ну это не суть. Последний вопрос не совсем понял, я как раз избавляюсь от ненужного рендера основного компонента по нескольку раз, а он не такой уж и маленький. Проще показать какую-то маленькую часть контента в модальном окне, чем постоянно пересоздавать большой компонент. Модальное окно это тоже самое что и любой компонент на странице, только весь акцент выделен на него, так как он поверх всего расположен.
Anton Bobylev: ну как таковой проблемы в архитектуре я не вижу, я думаю у вас тоже есть модальные окна, которые вы можете запускать на любой странице, хотя контент у них один и тот же). Тут просто добавляя удобство для пользователя, чтобы он мог копировать ссылку в браузере на модальное окно и скинуть её кому-то, столкнулся с этой проблемой. (хотя тут сложно назвать это модальным окном, это почти полноценная страница, которая естественно при прямом заходу будет открываться на правильной странице)
Anton Bobylev: Возможные варианты: 1) Если переходят по прямой ссылке, то грузится список новостей и сразу же поверх открывается модальное окно с новостью. 2) Если кликают на сайте в списке новостей на новость, то открывается модальное окно новости. Эти два варианта без проблем реализуются. Но есть третий вариант 3) Допустим на странице "О компании" (это может быть любая страница кроме "Список новостей") есть ссылка на какую-то конкретную новость. Мы не находимся в списке новостей, мы совершенно на другой странице. И когда мы нажимаем на эту новость, я не хочу чтобы страница "О компании" заменилась на "Список новостей" + поверх модальное окное новости. Нужно чтобы осталась страница "О компании" + поверех модальное окно с новостью. При этом ссылка была на страницу новости.
Anton Bobylev: Проблема в том, что я не могу запускать в модальном окне компоненты имеющие свою ссылку. Условно пусть это будут новости загружаемые в модальном окне. У каждой новости есть свой урл, поэтому при загрузки такого модального окна, нужно менять урл в браузере. Так как урл меняется получается, что страница загружает компонент с новостью и еще запускает модальное окно с этой же новостью. А мне нужно, чтобы загрузка произошла только в модальном окне, но при этом и сменился урл, а как закрыли модальное окно урл вернулся на прежнее. Такие модальные окна можно запустить на любой странице.
перепровил, еще раз свой код, действительно запросы всё же уходят. Оказывается пока исправлял другой косяк уже в компоненте поправил удаление интервала, и забыл про это
Спасибо за код, буду пока в нём разбираться. Просто если это делать на уровне redux, то проблемы получаются именно когда элементы удаляются. Просто тупое исчезание мне не нужно, нужна анимация, анимацию никак не сделать, так как элемент мгновенно удаляется при изменении параметра. Можно конечно сделать двойной диспач, первый говорит то элемент нужно удалить, но не удаляет, пока я не произведу с ними все нужные действия для удаления (перемещение, затухание, да всё что угодно, таймер просто везде может быть разные, и хочется удалять по колбеку). Как только произведу все действия делаю диспач уже на удаление. Это хорошо еще когда такой элемент для анимации немного, а если это большой список я уже не представляю как это всё диспачить
Использую его, это вложенность касается уже одного из редьюсеров. Разных значений в action.payload.key может быть очень много, а это только первый уровень, вот и не могу его разбить