【问题标题】:SwiftUI: .onappear not displaying data from firebase in first tabSwiftUI:.onappear 未在第一个选项卡中显示来自 firebase 的数据
【发布时间】:2026-02-22 09:45:01
【问题描述】:

在我的应用中,开始屏幕中的第一个选项卡不显示任何数据。选项卡的代码如下:

import SwiftUI
import FirebaseFirestore
import Firebase
import FirebaseFirestoreSwift

struct LibraryScreen: View {
    @ObservedObject var viewModel = BookViewModel()
    
    
    var body: some View {
        VStack
            {
                List(viewModel.books){book in
                    Text(book.name)
                }
            }.onAppear(){
                self.viewModel.fetchData()
                print("Fetching books")
            }
        .navigationBarTitle("Library", displayMode: .inline)
    }
}

struct LibraryScreen_Previews: PreviewProvider {
    static var previews: some View {
        LibraryScreen()
    }
}

但是,当从另一个选项卡返回时,数据会按预期显示。我应该用什么来代替.onappear

编辑:只是为了澄清我希望在启动时显示来自viewModel.fetchData 的数据,而不必实现按钮,但是尽管打印语句显示在控制台中,但获取的数据却没有。

【问题讨论】:

    标签: firebase swiftui tabview


    【解决方案1】:

    试试这个。

    List {
        if !viewModel.books.isEmpty {
            ForEach(viewModel.books) { book in {
                Text(book.name)
            }
        }
    }
    

    【讨论】:

    • @HamdyAli 你能告诉我们你的BookViewModel的代码吗?
    最近更新 更多