SwiftUI .onAppear не обновляет переменную @State возвращаемым значениемIOS

Программируем под IOS
Ответить
Anonymous
 SwiftUI .onAppear не обновляет переменную @State возвращаемым значением

Сообщение Anonymous »

Я пытаюсь вызвать созданную мной функцию, которая должна получать URL-адреса из облачного хранилища Google (firebase) при появлении представления. У меня нет ошибок, но код не отображает ни одно из моих изображений. Пропустил ли я какой-нибудь шаг в построении своего кода? Кстати, код, показанный ниже, является автономным внутри представления. Я планирую разделить вещи, как только выясню, что происходит.
Вот код, который у меня есть:

Код: Выделить всё

import SwiftUI
import FirebaseStorage

func testingCall(){
let _ = print("Test")
}

struct GalleryView: View {
@State var photos = [String]()

func getDownloadURl() -> [String] {
var photoURLS = [String]()
let ref = Storage.storage().reference()

let storageReference = ref.child("images/")
storageReference.listAll { (result, error) in
if let error = error {
print(error)
}
for item in result!.items {
//List storage reference
let storageLocation = String(describing: item)
let gsReference = Storage.storage().reference(forURL: storageLocation)

// Fetch the download URL
gsReference.downloadURL { url, error in
if let error = error {
// Handle any errors
print(error)
} else {
// Get the download URL for each item storage location
print(url!)
print(type(of: url!))
print(type(of: url!.absoluteString))
photoURLS.append(url!.absoluteString)
print(photoURLS)
}
}

}
}
return photoURLS
}
var body: some View {
NavigationView {
ScrollView {
LazyVGrid(columns: [
GridItem(.fixed(100)),
GridItem(.fixed(100)),
GridItem(.fixed(100))
], spacing: 12, content:{
ForEach(photos, id: \.self){ photoURL in
HStack {
Spacer()
AsyncImage(url: URL(string:photoURL)){ result in
if let result = result.image{
result
.resizable()
.frame(width:124,height:124)
}

}
Spacer()
}
.padding()
.background(Color.red)

}
})
}.navigationTitle("Gallery")
.onAppear{
photos = self.getDownloadURl()
}
}
}
}
Заранее благодарим за любые советы. Я очень ценю это.

Подробнее здесь: https://stackoverflow.com/questions/785 ... rned-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»