Почему плохо хранить состояние реакции-навигации в Redux

В документации по реактивной навигации есть специальный раздел Могу ли я сохранить состояние навигации и в Redux?.

В нем говорится:

Это невозможно. Мы не поддерживаем это, потому что слишком легко выстрелить себе в ногу и замедлить/сломать ваше приложение.

Я полагаю, что это было хорошо изучено командой реактивной навигации и сообществом. Наличие таких вопросов, как этого на SO, предполагает, что это было в какой-то момент поддерживался, но по какой-то причине должен был считаться повсеместно плохим.

Я хотел бы знать следующее: почему сохранение состояния навигации в Redux является плохой практикой?

Ответ может быть в следующем виде:

  • определенные сценарии, в которых сохранение состояния навигации в Redux приводило к дополнительным ошибкам/сложности
  • теоретическое объяснение, почему состояние навигации несовместимо с хранилищем Redux (например, его трудно сделать неизменяемым)
  • ссылки/выдержки из выпусков GitHub, которые демонстрируют, как именно было принято решение не советовать хранить состояние навигации в Redux
  • ...что-нибудь еще, что заставило бы читателя сказать о, блин, как я мог не подумать об этом :)

Я не смог найти хорошего объяснения с помощью быстрого поиска, и я решил, что этот вопрос будет хорошим ориентиром для таких же любопытных людей, как я. Должен признаться, что у меня часто возникает соблазн реализовать какой-то обходной путь для этого, просто чтобы хранить все в одном месте (например, чтобы можно было воспроизвести для целей отладки).


person YSK    schedule 23.07.2021    source источник


Ответы (1)


На самом деле, на последних днях React Contributor Days я (для контекста, сопровождающий Redux) поднял эту тему, и Майкл Джексон (сопровождающий React-Router) начал ее поддерживать, я помню, что вся дискуссия была довольно интересной. Конечно, все это довольно тема для обсуждения и может не дать вам всех ответов, но может дать вам некоторое представление о том, почему мы не хотим слишком сильно запутывать различные источники состояния.

Я посмотрел, здесь есть видео с отметкой времени начала обсуждения: https://youtu.be/4uLV8ieQVZk?t=3767

person phry    schedule 24.07.2021