AsyncImage внутри цикла ForEach
Я использую стандартный AsyncImage для загрузки изображения из Firebase Storage в свое приложение. Я использую два точно таких же фрагмента кода для загрузки одного и того же изображения, однако приложение компилируется только тогда, когда есть только первый фрагмент, второй вызывает сбой. Единственная разница между ними в том, что я хочу использовать второй для отображения нескольких одинаковых изображений в ForEach Loop.
Первый фрагмент:
HStack {
if let profilePicturePhotoURL = profileViewModel.profilePicturePhotoURL {
AsyncImage(url: profilePicturePhotoURL) { phase in
if let image = phase.image {
image
.resizable()
} else {
Image(uiImage: UIImage(named: "blank-profile-hi")!)
}
}
} else {
Image(uiImage: UIImage(named: "blank-profile-hi")!)
}
Text("What do you want to share?")
.frame(width: screenWidth * 0.6, height: screenHeight * 0.1)
}
.padding(.leading, screenWidth * 0.05)
Второй фрагмент:
if homeViewModel.posts != nil {
ForEach(homeViewModel.posts!) { post in
VStack {
Rectangle()
.foregroundColor(Color(uiColor: .systemGray6))
.frame(width: screenWidth, height: screenHeight * 0.02)
HStack {
if let profilePicturePhotoURL = profileViewModel.profilePicturePhotoURL {
AsyncImage(url: profilePicturePhotoURL) { phase in
if let image = phase.image {
image
.resizable()
} else {
Image(uiImage: UIImage(named: "blank-profile-hi")!)
}
}
} else {
Image(uiImage: UIImage(named: "blank-profile-hi")!)
}
Только уход
Image(uiImage: UIImage(named: "blank-profile-hi")!)
поскольку изображение второго фрагмента заставляет изображения отображаться правильно.