【问题标题】:Need data to initialize a StateObject需要数据来初始化 StateObject
【发布时间】:2022-03-06 07:25:15
【问题描述】:

我有一个 StateObject,我需要使用 Settings 中的属性对其进行初始化:

@State private var settingsStore = SettingsStore()
@StateObject var matrix = Matrix(d: settingsStore.d)

我该怎么做?我不能让它成为一个计算属性,因为它是一个状态对象

【问题讨论】:

标签: ios swift swiftui


【解决方案1】:

我相信您正在尝试在 View 中使用这些属性。

要解决您的问题,您可以简单地将代码拆分为两个不同的视图,在第一个视图中定义 SettingsStore 实例,然后使用它来初始化第二个视图的 Matrix 实例。

像这样:

struct FirstView: View {
    @State private var settingsStore = SettingsStore()
    
    var body: some View {
        SubView(settingsStore: $settingsStore, matrix: Matrix(d: settingsStore.d))
    }
}

struct SubView: View {
    @Binding var settingsStore: SettingsStore
    @StateObject var matrix: Matrix
    
    var body: some View {
        Text(matrix.d)
    }

}

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多