繁体   English   中英

项目更改时嵌套列表不会更新项目标签

[英]Nested list doesn't update item labels when items change

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

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

我的分类

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

制作一个具有@ObservedObject var product: ProductLabelView(product: product)这样您就可以观察到变化。 假设Product是 CoreData object 或ObsevervableObject

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM