Добавление заполнителя в AsyncImage и отображение другого изображения, если AsyncImage не может получить изображение
Я пытаюсь использовать, чтобы показать, пока он получает изображение из URL-адреса, но если ему не удается получить изображение, должно отображаться другое изображение. Мой код работает в том смысле, что он будет отображать другое изображение, если не удается получить изображение, но я не могу показать заполнитель во время выполнения асинхронной операции. Приведенный ниже код не содержит модификатора заполнителя и работает нормально (EDIT: на самом деле не подтверждено, если он работает...):
var body: some View {
AsyncImage(url: url, scale: scale ?? 1) { phase in
if let image = phase.image {
image
.resizable()
.aspectRatio(contentMode: contentMode ?? .fit)
.frame(width: width, height: height)
} else {
Image("placeholder_img")
.resizable()
.frame(width: 50, height: 50)
.border(Color(.NeutralPalette5))
.padding()
.aspectRatio(contentMode: .fill)
}
}
.frame(width: width, height: height)
}
Но добавление модификатора-заполнителя в этот код не работает:
var body: some View {
AsyncImage(url: url, scale: scale ?? 1) { phase in
if let image = phase.image {
image
.resizable()
.aspectRatio(contentMode: contentMode ?? .fit)
.frame(width: width, height: height)
} else {
Image("placeholder_img")
.resizable()
.frame(width: 50, height: 50)
.border(Color(.NeutralPalette5))
.padding()
.aspectRatio(contentMode: .fill)
}
} placeholder: {
ProgressView()
.progressViewStyle(.circular)
}
.frame(width: width, height: height)
}
Вышеприведенное приводит к следующей ошибке:
Failed to produce diagnostic for expression; please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project
Может ли кто-нибудь сказать мне, как я могу использовать заполнитель с моим кодом? Я в основном пытаюсь показать