我有一个数组,并且要遍历它,以便根据数组值初始化视图,并希望根据数组项索引执行操作
当我遍历对象时
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没有改变。
有解决方案吗?提前致谢。