Новое (для swiftui), я хотел бы отобразить изображение (обновить представление), как только URL-адрес будет готов. Очевидно, State var недостаточно. Похоже, что .onReceive и издатель могут помочь, но я беспомощен. NB: я использую KingFisher, но, похоже, это тот же случай для любого загрузчика. Ситуация кажется особенной (URL-адрес не готов при создании представления), но это более общая тема: например, когда запросы синхронизируются и фото профиля необходимо обновить когда другой пользователь меняет его.
Изменить: после еще нескольких тестов кажется, что представление обновляется, если, например, мы используем dispachQueue, чтобы отложить на одну секунду, а затем пытаемся обновить. Он не обновляется при получении значения напрямую с помощью firebase onAppear
import SwiftUI
import Firebase
import Kingfisher
struct Test4: View {
@State private var mProfilePhotoUrl: URL = URL(string:"0")!
var body: some View {
VStack(alignment: .center,spacing : 0){
KFImage(mProfilePhotoUrl)
}.onAppear(){
setUpProfileElements()
}
}
private func setUpProfileElements(){
// FirebaseRequest -> mProfilePhotoUrl = URL(string: User.profilePhoto)
}
}
.id(mProfilePhotoUrl)
, чтобы заставить его измениться при изменении URL-адреса? - person jnpdx   schedule 31.03.2021