【问题标题】:iOS Beta 5 SwiftUI List duplicates single itemiOS Beta 5 SwiftUI 列表重复单个项目
【发布时间】:2020-12-09 00:22:53
【问题描述】:

还有其他人在 iOS 14 Beta 5 中看到过这个吗?它在以前的测试版中运行良好...

    @State private var favorites = [Truck]()
    @State private var favoritesRetreived = false

    var body: some View {
        List {
            ForEach(favorites, id:\.id) { truck in
                NavigationLink (destination: TruckDetail(truck: truck)) {
                    TruckListItem(truck: truck)
                }
            }
        }
        .navigationBarTitle(Text("Favorites"), displayMode: .inline)
        .onAppear(perform: {
            getFavoriteTrucks()
        })
    }

在对 getFavoriteTrucks 的调用中,收藏夹中的数据已正确更新,但列表仅显示了第一个项目重复了 favorites.count 次数。我知道这在以前的测试版中可以正常工作......我错过了什么变化吗?

【问题讨论】:

  • 我首先要确保truck.id 是唯一的。重复的 ID 可能会产生您所描述的症状(并且方式因版本而异)。
  • 是的,卡车中的所有数据都符合预期。卡车 ID 是唯一的。测试版之间没有任何变化。谢谢。

标签: ios swiftui beta


【解决方案1】:

罗伯·纳皮尔,你是对的。我在 ForEach 中使用的 .id 不是我应该使用的值。所有这些值都是“”,因此正在生成重复项。谢谢!

【讨论】:

    【解决方案2】:

    检查您的 id 值。 ForEach 循环中不需要提及它,但它在您的模型中应该是唯一的。

    例如:

    ForEach(list.datas) { 我在 打印(i.id) }

    此 i.id 必须具有唯一值,且不应为 nil 或为空, 对我来说这是一个空字符串。

    【讨论】:

      猜你喜欢
      • 2020-01-09
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      相关资源
      最近更新 更多