在iOS 16中,List
有一个新的初始化器,它带有editActions
参数,允许您将editActions
与EditButton()
一起使用,而不是应用几个修饰符.onMove, .onDelete
等。
struct QuestionView: View {
@State
private var data: [Int] = Array(1...100)
@State
private var searchQuery: String = ""
var filteredData: [Int] {
switch searchQuery.isEmpty {
case true: return data
case false: return data.filter { $0.description.contains(searchQuery) }
}
}
var body: some View {
NavigationStack {
// New init take a $data: Binding<[Int]>
// i can’t pass filteredData: [Int]
List($data, id: \.self, editActions: .all) {
// List(filteredData, id: \.self) {
Text("\($0.wrappedValue)")
}
.navigationTitle("Example")
.searchable(text: $searchQuery)
.toolbar { EditButton() }
}
}
}
如何保存搜索功能(传递filteredData
)并将绑定传递给新的List
初始化器?
1条答案
按热度按时间sirbozc51#
您可以通过以下方式实现此目的:
然后。
问题是,当过滤后的数据被编辑(重新排序或删除一个项目)时,原始数据会发生什么?