Xcode SwiftUI:难以使用字典定义搜索结果列表
我将尝试执行一个搜索视图 我想将结果保存在字典中,以便创建结果列表,但xCode显示此错误: 无法通过下标分配:“self”是不可变的 我的代码:Xcode SwiftUI:难以使用字典定义搜索结果列表,xcode,dictionary,search,swiftui,swiftui-list,Xcode,Dictionary,Search,Swiftui,Swiftui List,我将尝试执行一个搜索视图 我想将结果保存在字典中,以便创建结果列表,但xCode显示此错误: 无法通过下标分配:“self”是不可变的 我的代码: import SwiftUI struct SearchListView: View { @State var search: String = "test" var stringDictionary: Dictionary = [Int: String]() var body: some View {
import SwiftUI
struct SearchListView: View {
@State var search: String = "test"
var stringDictionary: Dictionary = [Int: String]()
var body: some View
{
NavigationView
{
ForEach(chapterData) { chapter in
ForEach(chapter.lines) { line in
HStack {
if (self.search == line.text) {
HStack {
stringDictionary[0] = line.text
}
}
}
}
}
}
}
}
struct SearchListView_Previews: PreviewProvider {
static var previews: some View {
SearchListView(search: "test")
}
}
这是如此不必要的复杂代码。尝试发布一个最小的工作代码来重现问题。您将逻辑与视图混合。我们使用
ForEach
来构建用户界面,而不是填充数据源之类的东西。我试图简化代码。是的,我明白你的意思。如何将搜索从视图中分离出来?我会将搜索字符串发送到模型并返回结果,然后相应地刷新UI。好的,我明白了。我没有从这个角度看待这个问题。谢谢:)
struct Chapter: Codable, Identifiable {
let id:Int
let lines: [Line]
}
struct Line: Codable, Identifiable {
let id: Int
let text: String
}