AsyncImage 未加载到 VStack 中

AsyncImage not loading inside VStack

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 window 中的模拟器会消失。 )

我认为这是一个 SwiftUI 错误。任何已知的解决方法?

试试这个,替换 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
                }
            }
        }
    }
}