如何禁用 .onDelete- 或如何在列表中逐行使用 .deleteDisabled?

How to disable .onDelete- or how to use .deleteDisabled on a per row basis in a list?

我正在尝试基于核心数据项中的 Bool 禁止逐行删除列表中的行。目标是只允许删除已标记为已付款的列表项。虽然我可以让我的删除功能只删除“付费”项目,但用户仍然可以在视觉上滑动删除,我想删除它。

我有一个列表,其中包含来自 Core Data 的 forEach。 我将 .onDelete 与删除功能一起使用,效果很好。 我正在尝试使用 .deleteDisabled,但我无法让它使用 Core Data 中的 bool。我只能让它同时启用或禁用所有行的删除。

有没有办法做到这一点,希望没有 UIkit?

我的 2 美分 Xcode 12:

....

 List () {
      ForEach(self.items) { item in 
           let disabled = item.protected // ANY attribute of struct item
           MyFileCell(file: file) // ANY swift elements.. Text()....
           .deleteDisabled(disabled)
       }
       .onDelete(perform: delete)
  } // end of list

...