我尝试使用 onReceive 来观察 @FetchRequest 发布者的变化,如下面的代码所示,它可以工作,但我有一个问题,我想修复它,发布者发布到许多值,我只想接收一个值来了解@FetchRequest 发生了变化。
示例代码
struct TodayView: View {
@FetchRequest(fetchRequest: TodoTaskManager.allOverdueTasksFetchRequest)
private var overdueTasks: FetchedResults<TodoTask>
// Some views...
.onReceive(overdueTasks.publisher.count()) { _ in
print("tasks count: \(overdueTasks.count)") // The print times equals tasks count x 2
}
}
在您通过
collect()
观察到的
@FetchRequest
出版商上使用
onReceive
.onReceive(myObjects.publisher.collect(), perform: { objects in
print(objects.count)
})