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")!)

поскольку изображение второго фрагмента заставляет изображения отображаться правильно.

0 ответов

Другие вопросы по тегам