。onDelete在排序的ForEach中不起作用-SwiftUI
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了。onDelete在排序的ForEach中不起作用-SwiftUI相关的知识,希望对你有一定的参考价值。
我不知道为什么这不起作用。我总是以相同的方式进行操作,唯一的区别是sorted
方法。
ForEach(userData.fruits_and_vegetables.sorted { $0.item < $1.item}) { grocery in
DetailCardView(item: grocery.item, itemCount: grocery.count)
}.onDelete { (offset) in
self.userData.fruits_and_vegetables.remove(atOffsets: offset)
}
帮助!谢谢
答案
您获得了一个数组的offset
,但尝试将其应用于另一数组...确实不起作用。
相反,应该这样做,例如
let sorted = userData.fruits_and_vegetables.sorted { $0.item < $1.item}
...
ForEach(sorted) { grocery in
DetailCardView(item: grocery.item, itemCount: grocery.count)
}.onDelete { (offset) in
for i in offset {
if let found = self.userData.fruits_and_vegetables.firstIndex(where: { $0 == sorted[i] }) {
self.userData.fruits_and_vegetables.remove(at: found)
}
}
}
并且最好将sorted
和onDelete
的内容移到您的userData
类中。
以上是关于。onDelete在排序的ForEach中不起作用-SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章
knockoutjs 点击绑定在嵌套的 foreach 中不起作用
Flutter async/await 在 forEach 中不起作用