AsyncImage не загружается внутри VStack
При использовании
AsyncImage
внутри изображение никогда не загружается. Обработчик вызывается один раз, и
AsyncImagePhase
является
.empty
. Образец кода:
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
AsyncImage(url: URL(string: "https://i.scdn.co/image/ab6761610000e5ebb78f77c5583ae99472dd4a49")!) { phase in
switch phase {
case .success(let image):
image
default: EmptyView()
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Если вы удалите
VStack
, изображение загружается (только когда вы запускаете приложение; в этом случае Симулятор в окне Canvas исчезает).
Я предполагаю, что это ошибка SwiftUI. Любые известные обходные пути?
1 ответ
попробуйте это, заменив
EmptyView()
: (обратите внимание, что нет необходимости в "!" для URL-адреса)
struct ContentView: View {
var body: some View {
VStack {
AsyncImage(url: URL(string: "https://i.scdn.co/image/ab6761610000e5ebb78f77c5583ae99472dd4a49")) { phase in
switch phase {
case .success(let image):
image
default: Color.clear // <-- here
}
}
}
}
}