首页 > 解决方案 > 如何获取 SwiftUI ForEach 中的前一个元素?

问题描述

我在 SwiftUI 中有一个这样的 ForEach:

ForEach(entries) { (e: MyType) in
   NavigationLinkItem(entry: e)
}

现在我还需要将上一个条目传递给我的视图(NavigationLinkItem)来执行以下操作:

ForEach(entries) { (e: MyType) in
   NavigationLinkItem(entry: e, sucessor: ...)
}

如何意识到这一点?

标签: foreachswiftui

解决方案


为了保持ForEach动态,请在下面找到可能的方法(假设MyTypeis Identifiable,并且后继是可选的)

ForEach(Array(entries.enumerated()), id: \.1.id) { (index, e) in
   NavigationLinkItem(entry: e, sucessor: (index == 0 ? nil : self.entries[index - 1]))
}

推荐阅读