在onDelete函数中获取已删除项目的值

blksld

我有问题 我需要使用.onDelete函数删除的项目的值我是新手,我不知道该怎么做。如果有人可以在这里帮助我,那将是很好的。谢谢。

列表:

struct TimeStampList: View {
    
    @EnvironmentObject var user: User
    @ObservedObject var viewModel: SingleEntriesViewModel
    
    var body: some View {
        List {
            ForEach(0..<self.viewModel.timeStamps.count, id: \.self) { timeStamp in
                Section(header: Text("\(TimeStamp.convertToReadableString(date: self.viewModel.timeStamps[timeStamp].date))")) {
                    if (self.viewModel.timeStamps[timeStamp].dayType != "V") {
                        ForEach(self.viewModel.timeStamps[timeStamp].times, id: \.self) { time in
                            SingleEntriesRow(time: time, id: UUID())
                        }.onDelete { times in
                            self.deleteTimeStamps(timeStamp: timeStamp, row: times)
                        }
                    }
                    else {
                        Text("V")
                    }
                }
            }
        }
    }
    
    func deleteTimeStamps(timeStamp: Int, row: IndexSet) {
        self.viewModel.timeStamps[timeStamp].deleteTime(at: row)
        self.viewModel.sortTimeStamps()
        self.viewModel.timeStamps[timeStamp].times[row] // <- I need this but row is of type IndexSet not Int.
    }
}

时间戳记:

struct TimeStamp: Identifiable { 
   var id = UUID() 
   var date: Date 
   var times: [String]
   var dayType: String 
}

ViewModel:

class SingleEntriesViewModel: ObservableObject { 
   @Published var timeStamps = [TimeStamp]() 
}
pawello2222

这是因为IndexSettype的索引的集合Int

您可以获取第一个索引:

if let index = row.first {
    // index is of type `Int`
    // let result = self.viewModel.timeStamps[timeStamp].times[index]
}

或使用aforEach来遍历所有索引:

row.forEach { index in
    // index is of type `Int`
    // let result = self.viewModel.timeStamps[timeStamp].times[index]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从列表中删除重复的值,同时跟踪已删除项目的索引

从child_removed firebase事件中获取已删除项目的密钥

在Firebase云函数中获取null值onDelete()

获取数组中项目的值

DomNode获取项目的值

JavaScript:如果在特定索引中发现重复值,是否有从数组中删除项目的函数?

在BindingList的ItemChanging事件中获取已删除的项目

如何获取foreach中每个项目的先前值

在$ _POST中获取所选项目的值

根据值获取列表中项目的索引

如何获取集合中嵌套项目的值?

从数组中获取最后单击的项目的值

如何获取python列表中项目的索引和值?

在optionMenu Tkinter中获取所选项目的值

如何在Android中获取ListView项目的值

删除按钮 - onDelete 函数

如何从Java 8流过滤中捕获已删除项目的列表?

单击列表中每个项目的链接时,调用函数可删除一个项目

如何在onDelete中获取当前的CoreData项目

获取数组中每个项目的ID,并附加到选项值中的每个项目

按值从数组中删除一个项目,但保留该项目的重复项

使用项目的值[不按键]从字典中删除项目

是否可以在不使用 safedelete 或 softdelete 的情况下获取 django 模型中所有已删除项目的列表?

获取ListPicker中选定项目的值

获取所选项目的值

RecylcerView滚动到已删除项目的顶部

如何恢复已删除项目的根目录?

如何使用 .onDelete 中的值删除 FMDB 数据

从字典中删除项目的最佳方法