Swift 嵌套列表不';当项目更改时,不更新项目标签

Swift 嵌套列表不';当项目更改时,不更新项目标签,swift,swiftui,Swift,Swiftui,我在SwiftUI中有一个嵌套的类别及其产品。如果我点击一个产品,编辑其名称并返回列表,则名称不会更新。产品列表来自@FetchRequest上的一个计算属性,而不是直接来自@FetchRequest,我感觉我缺少了一个包装器或什么东西 如果我添加了一个新产品,那么列表就会更新,因为这会通知@FetchRequest某些内容发生了变化,我的计算属性缺少了这个“魔力” 我的类别 我的名单 制作一个具有@ObservedObject var product:product的LabelView(pro

我在SwiftUI中有一个嵌套的
类别
及其
产品
。如果我点击一个
产品
,编辑其名称并返回列表,则名称不会更新。产品列表来自
@FetchRequest
上的一个计算属性,而不是直接来自
@FetchRequest
,我感觉我缺少了一个包装器或什么东西

如果我添加了一个新产品,那么列表就会更新,因为这会通知
@FetchRequest
某些内容发生了变化,我的计算属性缺少了这个“魔力”

我的类别 我的名单
制作一个具有
@ObservedObject var product:product
LabelView(product:product)
,这样您就可以观察到更改。假设
Product
是一个CoreData对象或
ObsevervableObject

这个
类别。sortedProducts
应该是存储属性,而不是可计算的,因此view可以观察到它并相应地更新view。但它是一个动态关系,需要从核心数据而不是存储属性中获取,如何解决此问题?制作一个具有
@ObservedObject var product:product
LabelView(product:product)
,这样您就可以观察到更改。假设
产品
是一个CoreData对象或
ObsevervableObject
@loremipsum有效,非常感谢!如果你把它作为答案贴出来,我会接受的。
extension Category {
    @NSManaged public var name: String?
    @NSManaged public var products: NSSet?

    var sortedProducts: [Product] {
        return self.products.allObjects.sorted({ $0.name > $1.name })
    }
}
List {
    ForEach(categories) { category in
        Section(header: Text(category.name)) {
            ForEach(category.sortedProducts, id: \.self) { product in
                NavigationLink(
                    destination: ProductFormView(edit: product),
                    label: {
                        Text(product.name)
                    })
            }
        }
    }
}