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
                }
            }
        }
    }
}
Другие вопросы по тегам