SwiftUI 使用 @FetchRequest Publisher 进行接收

问题描述 投票:0回答:1

我尝试使用 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
       }
}
swiftui core-data fetchrequest
1个回答
0
投票

在您通过

collect()
 观察到的 
@FetchRequest
 出版商上使用 
onReceive

.onReceive(myObjects.publisher.collect(), perform: { objects in
        print(objects.count)
})
© www.soinside.com 2019 - 2024. All rights reserved.