initialization - SwiftUI:初始化不初始化数组

标签 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)
    }
}

indexes 在我的 init 例程中被设置为 ["E","F"] 而不是我所期望的 ["A","B"] 。发生了什么事?

最佳答案

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

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

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

关于initialization - SwiftUI:初始化不初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62728405/

相关文章:

swift - 使用不同的数组动态更改选择器中的选项

animation - 在 SwiftUI 中按高度对 View 进行动画处理

c++ - 如何从类中初始化数组并将值设置为第一个元素?

c - 在C中初始化结构内部的数组

c - 结构体数组的初始化

ios - 如何在 UIView 中使 SwiftUI View 透明或半透明?

ios - 超过最大文本 ("") 连接长度 - SwiftUI -

swift - 参数类型 'xxx' 不符合预期类型 '_FormatSpecifiable'

c++ - 访问成员变量的问题

c# - Web 服务中的数组 - 对象引用未设置为对象的实例