SwiftUI:Init 未初始化数组

iph*_*aaw 3 initialization swiftui

在我看来,我在初始化数组时遇到问题:

struct ProjectList: View
{
    @ObservedObject var store: ProjectStore
    @Binding var searchText: String

    @State private var query: [Project] = []
    @State private var indexes: [String] = ["E","F"]
     
    init(store: ProjectStore, searchText: Binding<String>)
    {
        self.store = store
        self._searchText = searchText
        self.query = []
        self.indexes = ["C","D"]
        indexes = ["A","B"] //store.getIndexes(search: searchText.wrappedValue)
        print (indexes)
    }
}
Run Code Online (Sandbox Code Playgroud)

正如我所期望的,在我的初始化例程中索引被设置为 ["E","F"] 而不是 ["A","B"] 。怎么了?

Asp*_*eri 5

只是在声明时不要初始化状态(因为它只初始化一次,然后在视图生命周期内工作,即在body

    @State private var indexes: [String]        // << only declare

    init(store: ProjectStore, searchText: Binding<String>)
    {
        ...
        self._indexes = State(initialValue: ["C","D"])  // initialise !!
Run Code Online (Sandbox Code Playgroud)