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