Примечание. Из-за их жизненного цикла и области действия вы должны получать доступ и вызывать экземпляры ViewModel в компонуемых объектах уровня экрана, то есть рядом с корневым компонуемым объектом, вызываемым из действия, фрагмента или места назначения графа навигации. Никогда не следует передавать экземпляры ViewModel другим составным объектам, передавайте в качестве параметров только те данные, которые им нужны, и функции, которые выполняют требуемую логику.
Однако область действия ViewModel ограничена действием или фрагментом, поэтому я ожидаю, что все будет в порядке, если вы вызовете viewModel() в любом месте иерархии, и даже в несколько мест в одной иерархии. Я бы ожидал, что в любом случае будет возвращен один и тот же экземпляр.
- В чем недостаток вызова viewModel() глубже в иерархии, чем корневой составной элемент экрана?
- Почему экземпляр ViewModel не должен передаваться вложенному составному объекту?
Подробнее здесь: https://stackoverflow.com/questions/769 ... tance-neve
Мобильная версия