Наглядный пример использования протокола
Equatable, чтобы избавиться от лишних перерисовок вьюхи. На первом видео до исправления, на втором - после.Вьюха принимает на вход несколько свойств, и ни одно из них не изменяется при нажатии на кнопку "избранного" в навбаре, но по умолчанию вьюха обновляется при изменении этого
State-свойства на экране.Все, что нужно было сделать для исправления проблемы:
struct HTMLContentView: UIViewRepresentable, @preconcurrency Equatable {
static func == (lhs: HTMLContentView, rhs: HTMLContentView) -> Bool {
lhs.infopost == rhs.infopost && lhs.fontSize == rhs.fontSize
}
// остальной код
}
Это первый случай, когда мне пригодился протокол
Equatable с момента публикации статьи об этом, и все же он пригодился 👌