0

使用AsyncImageinside aVStack时,图像永远不会加载。处理程序被调用一次,并且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 窗口中的 Simulator 会消失。)

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

4

1 回答 1

0

试试这个,替换EmptyView():(注意不需要“!”的网址)

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
                }
            }
        }
    }
}
于 2022-02-04T02:15:49.763 回答