Когда View в SwiftUI неожиданно перерисовывается, это может сбивать с толку. Но есть простой способ понять, что именно вызвало обновление.
♣️ Добавьте в body вашей View:
var body: some View {
let _ = Self._printChanges()
// Ваш код
}
✅ Данный код отобразит в консоли:
🔸 Какое свойство (
@State, @ObservedObject и т.д.) вызвало обновление View.🔸 Было ли обновление из-за изменения самой вьюхи.
🔸 Была ли смена её идентичности (
@identity).⚠️ Альтернативные способы отладки.
1️⃣ onAppear + print.
Text("Привет")
.onAppear {
print("View появилась")
}
2️⃣ Кастомный модификатор для вывода в консоль.
extension View {
func debugPrint(_ text: String) -> Self {
print(text)
return self
}
}
// Использование:
Circle()
.fill(.green)
.debugPrint("Круг отрисован")
💡 Вывод:
🔹 Self._printChanges() — лучший способ понять, почему перерисовывается View.
🔹 onAppear и кастомные модификаторы помогут отследить жизненный цикл вью.
Вот так просто можно понять, почему вьюхи в SwiftUI вдруг решили перерисоваться.
➡️ Подписаться на канал
Мобильный трудоголик