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
}
}
}
}
}
在 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
}
}
}
}
}