Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Swiftui中,我有一个@Published的数组。我在数组上使用了.filter,但得到的错误是成员元素不存在_Arrays_Swiftui - Fatal编程技术网

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
         }
  }