【问题标题】:SwiftUI: Filtering list based on categories in JSON file gives error "Failed to produce diagnostic for expression"SwiftUI:基于 JSON 文件中的类别过滤列表给出错误“无法为表达式生成诊断”
【发布时间】:2021-08-30 00:12:48
【问题描述】:

如果 json 文件中元素的类别与给定字符串“hoodies”匹配,我正在尝试过滤列表。如果没有过滤器,列表会正确填充,因此错误不应与该部分相关。

代码:

struct ProductList: View {
var filteredProducts: [Product] {
        products.filter { product in
            (product.category == "hoodies")
        }
    }

var body: some View {
    NavigationView {
                List(filteredProducts) { product in
                    NavigationLink(destination: ProductDetail(product: product)) {
                        ProductRow(product: product)
                    }
                }
    }
}

Screenshot of error

如果需要,我还提供了我的 JSON 文件,但我认为不需要它,因为列表在没有过滤条件的情况下填充得非常好。 JSON File

感谢您的宝贵时间!

** 后面的文字“hoodies”将被替换为其他内容,这只是为了测试**

【问题讨论】:

  • 能否包含Product 的定义以及ProductDetail 和ProductRow 的最小表示形式?

标签: list swiftui filtering


【解决方案1】:

没有“产品”和“产品”的代码就不清楚了, 你如何让“产品”进入 ProductList 视图?你可以试试这个:

List(filteredProducts, id: \.self) {... }

或

List(filteredProducts, id: \.id) {... }

【讨论】:

  • 非常感谢!那行得通!感谢您的反馈,我将确保下次包含所有内容! ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
相关资源
最近更新 更多