Xcode SwiftUI:难以使用字典定义搜索结果列表

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 {

我将尝试执行一个搜索视图

我想将结果保存在字典中,以便创建结果列表,但xCode显示此错误:

无法通过下标分配:“self”是不可变的

我的代码:


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 
}