首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.onDelete在排序的ForEach - SwiftUI中不起作用

在排序的ForEach - SwiftUI中,.onDelete() 是一个用于删除元素的修饰符。然而,在排序的ForEach中使用 .onDelete() 时可能会遇到问题,因为排序会改变元素的顺序,从而导致删除操作无法正确地与元素对应。

解决这个问题的方法是,在ForEach之前先对数据进行排序,然后在ForEach中使用带有索引的enumerated()方法来遍历数据。这样可以确保删除操作与正确的元素对应。

下面是一个示例代码:

代码语言:txt
复制
struct ContentView: View {
    @State private var items = ["Item 1", "Item 2", "Item 3"]

    var body: some View {
        List {
            ForEach(Array(items.enumerated()), id: \.element) { index, item in
                Text(item)
            }
            .onDelete(perform: deleteItem)
        }
    }

    func deleteItem(at offsets: IndexSet) {
        items.remove(atOffsets: offsets)
    }
}

在这个示例中,我们首先对 items 数组进行排序,然后使用 enumerated() 方法来遍历数组,并将索引和元素传递给 ForEach。最后,我们在 .onDelete() 修饰符中调用 deleteItem() 方法来删除选定的元素。

这样,无论排序如何改变元素的顺序,删除操作都会与正确的元素对应。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云产品:云服务器(https://cloud.tencent.com/product/cvm)
  • 腾讯云产品:云数据库 MySQL 版(https://cloud.tencent.com/product/cdb_mysql)
  • 腾讯云产品:云原生容器服务(https://cloud.tencent.com/product/tke)
  • 腾讯云产品:云存储(https://cloud.tencent.com/product/cos)
  • 腾讯云产品:人工智能(https://cloud.tencent.com/product/ai)
  • 腾讯云产品:物联网(https://cloud.tencent.com/product/iotexplorer)
  • 腾讯云产品:移动开发(https://cloud.tencent.com/product/mobdev)
  • 腾讯云产品:区块链(https://cloud.tencent.com/product/baas)
  • 腾讯云产品:元宇宙(https://cloud.tencent.com/product/metaverse)
  • 腾讯云产品:云安全(https://cloud.tencent.com/product/ss)
  • 腾讯云产品:音视频处理(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:网络通信(https://cloud.tencent.com/product/im)
  • 腾讯云产品:服务器运维(https://cloud.tencent.com/product/cwp)
  • 腾讯云产品:软件测试(https://cloud.tencent.com/product/tst)
  • 腾讯云产品:前端开发(https://cloud.tencent.com/product/fed)
  • 腾讯云产品:后端开发(https://cloud.tencent.com/product/bcd)
  • 腾讯云产品:数据库(https://cloud.tencent.com/product/cdb)
  • 腾讯云产品:存储(https://cloud.tencent.com/product/cos)
  • 腾讯云产品:网络安全(https://cloud.tencent.com/product/ss)
  • 腾讯云产品:音视频(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:多媒体处理(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:人工智能(https://cloud.tencent.com/product/ai)
  • 腾讯云产品:物联网(https://cloud.tencent.com/product/iotexplorer)
  • 腾讯云产品:移动开发(https://cloud.tencent.com/product/mobdev)
  • 腾讯云产品:区块链(https://cloud.tencent.com/product/baas)
  • 腾讯云产品:元宇宙(https://cloud.tencent.com/product/metaverse)

请注意,以上链接仅供参考,具体产品和服务详情请访问腾讯云官方网站获取最新信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券