我创建了一个带有 init() 的 ViewModel,它接受类似这样的参数。PS:学习swift和swiftUI
//UsersViewModel.swift
class UsersViewModel: ObservableObject {
@Published var users: [User]
@Published var category: String
init(category: String) {
self.category = continentcategory
self.users = UserData().getUsers(byCategory: category)
}
}
UserData 是我有一个函数 getUsers(byCategory) 的数据模型,它允许我获取数据子集而不是所有数据,然后对其进行过滤。
对于我的 SwiftUI 视图
//UserListByCategory.swift
import SwiftUI
struct UserListByCategory: View {
@EnvironmentObject var ud: UsersViewModel
var body: some View {
Text("Hello")
}
}
struct UserListByCategory_Previews: PreviewProvider {
static var previews: some View {
UserListByCategory()
.environmentObject(UsersViewModel(category: "Office"))
}
}
在用户选择一个类别后,上面的 SwiftUI View 会被另一个 ListView 调用。如何在不在这里硬编码的情况下通过该类别?