相关疑难解决方法(0)

在SwiftUI中获取ForEach中的索引

我有一个数组,并且要遍历它,以便根据数组值初始化视图,并希望根据数组项索引执行操作

当我遍历对象时

ForEach(array, id: \.self) { item in
  CustomView(item: item)
    .tapAction {
      self.doSomething(index) // Can't get index, so this won't work
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,我尝试了另一种方法

ForEach((0..<array.count)) { index in
  CustomView(item: array[index])
    .tapAction {
      self.doSomething(index)
    }
}
Run Code Online (Sandbox Code Playgroud)

但随着第二种方法的问题是,当我改变阵列,例如,如果doSomething做以下

self.array = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

ForEach即使值已更改,视图也不会更改。我相信,发生这种情况是因为array.count没有改变。

有解决方案吗?提前致谢。

swift swiftui

7
推荐指数
11
解决办法
2265
查看次数

标签 统计

swift ×1

swiftui ×1