Рассмотрим ситуацию, когда у вас есть ContentView
и DestinationView
. Оба они зависят от некоторых общих данных, которые обычно находятся внутри @ObservedObject var viewModel
, которые вы передаете от родителя к потомку либо через @EnvironmentObject
, либо непосредственно внутри init()
. DestinationView
в этом случае хочет обогатить viewModel, получая некоторый дополнительный контент внутри .onAppear
.
В этом случае при использовании NavigationLink
вы можете столкнуться с ситуацией, когда DestinationView
попадает в цикл обновления при извлечении содержимого, так как он также обновляет родительский вид и перерисовывает всю структуру.
При использовании List
вы явно устанавливаете идентификаторы строк, и поэтому представление не изменяется, но если NavigationLink
нет в списке, он обновит все представление, сбрасывая его состояние и скрывая DestinationView
.
Возникает вопрос: как сделать NavigationLink
обновление / перерисовку только при необходимости?