Это ошибка в SwiftUI?
Нет, это не так. List
кэширует строки для повторного использования и повышения производительности.
Есть ли способ избавиться от этого поведения?
Да,
a) не сохраняйте UIImage
в элементе
b) управляйте UIImage
в другом месте и сохраняйте структуру как weak var image: UIImage?
c) обрабатывайте это в строке .onDisappear
d) игнорировать это, потому что List кэширует не больше строк, чем помещается на экране, поэтому он будет сброшен при использовании этой строки для другого изображения
Мои предпочтительные a) и d) в зависимости от варианта использования.