[英]In Swiftui, I have an array that is @Published. I use .filter on the array but get error that member elements does not exist
object 定义为:
struct Course: Identifiable, Hashable, Codable {
@DocumentID var id: String?
var country: String
var createdBy: String
}
然后我将此 object 嵌入为 class 的成员,如下所示:
class CourseRepository: ObservableObject {
private let path: String = "Courses"
private let store = Firestore.firestore()
@Published var courses: [Course] = []
...
在下面的代码段中,我只希望 map 结果包含“createdBy”== 到当前登录用户的 uid 的课程。 但是在 .filter 语句中,我收到以下错误:
强调文本
**Value of type 'Published<[Course]>.Publisher.Output' (aka 'Array<Course>') has no member 'createdBy'**
MyCourseRepository.$courses
.filter { $0.createdBy == self.authState.loggedInUser!.uid }
.map { courses in courses.map(CourseViewModel.init)}
.assign(to: \.MyCourseViewModels, on: self)
.store(in: &cancellables)
}
非常感谢对此的任何帮助!
现在,您正在尝试filter
Publisher
,而您想要做的是过滤它正在发送的数组中的项目:
MyCourseRepository.$courses
.map { courseArray in
courseArray.filter { course in
course.createdBy == self.authState.loggedInUser!.uid
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.