Arrays 在Swiftui中,我有一个@Published的数组。我在数组上使用了.filter,但得到的错误是成员元素不存在
对象定义为:Arrays 在Swiftui中,我有一个@Published的数组。我在数组上使用了.filter,但得到的错误是成员元素不存在,arrays,swiftui,Arrays,Swiftui,对象定义为: struct Course: Identifiable, Hashable, Codable { @DocumentID var id: String? var country: String var createdBy: String } 然后,我将此对象作为类的成员嵌入,如下所示: class CourseRepository: ObservableObject { private let path: String = "Courses
struct Course: Identifiable, Hashable, Codable {
@DocumentID var id: String?
var country: String
var createdBy: String
}
然后,我将此对象作为类的成员嵌入,如下所示:
class CourseRepository: ObservableObject {
private let path: String = "Courses"
private let store = Firestore.firestore()
@Published var courses: [Course] = []
...
在下面的代码段中,我只希望映射结果包含“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)
**类型为“Published.Publisher.Output”(又名“Array”)的值没有成员“createdBy”**
mycourses.$课程
.filter{$0.createdBy==self.authState.loggedInUser!.uid}
.map{courses中的courses.map(CourseViewModel.init)}
.分配(到:\.MyCourseViewModels,在:self上)
.store(在:&可取消项中)
}
非常感谢您在这方面的任何帮助 现在,您正试图
筛选发布者,而您要做的是筛选它发送的数组中的项目:
MyCourseRepository.$courses
.map { courseArray in
courseArray.filter { course in
course.createdBy == self.authState.loggedInUser!.uid
}
}