ios - 在 ForEach 循环 SwiftUI 中使用索引获取索引

标签 ios swift iphone mobile swiftui

我是 SwiftUI 的新手,我正在尝试获取以下 ForEach 循环的索引

ForEach(self.postViewModel.posts, id: \.postId) { post in
                      
                                                       HStack(alignment: .top, spacing: 25) {
                                                           Header(post : post)
                                                           Footer(post: post)
                                                       

我试过如下使用索引:

 ForEach(self.postViewModel.posts.indices, id: \.postId) { post in

但是我得到了这个错误

Value of type 'Range<Array<Post>.Index>.Element' (aka 'Int') has no member 'postId'

我也尝试过使用索引,但显然它不会工作,因为索引不在循环中

ForEach(self.postViewModel.posts, id: \.postId) { post in
                           
                                                           HStack(alignment: .top, spacing: 25) {
                                                               Header(post : post)
                                                               Footer(post: post)
                                                           Text("#\(index)").frame(width: 45, height: 30)

最佳答案

indices的变体中,你应该使用self作为id

ForEach(self.postViewModel.posts.indices, id: \.self) { post in

可能的变体同时具有两者

ForEach(Array(self.postViewModel.posts.enumerated()), 
    id: \.1.postId) { (index, post) in

关于ios - 在 ForEach 循环 SwiftUI 中使用索引获取索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63846503/

相关文章:

iphone - NSURL连接超时

ios - 计算移动距离 iOS MapKit

ios - Alamofire 多个请求

ios - Instagram - 如何在 Objective C 中使用 API 关注用户

swift - 为什么有时我们在 swift 中使用 -> void 作为完成处理程序,但有时却不用?

ios - SVN结帐Mac终端/Xcode

ios - Objective-C 属性 - "id"是什么意思?

swift - MacOS 在 StatusBar 上创建 ProgressBar

ios - UITableView 分段

iphone - 强制本地化应用程序