我们如何在SwiftUI中读写相同的ObservableObject?

奥米德

我正在上一ObservableObject堂课,然后在所有应用程序中使用它来读写价值。当我ObservableObject在StateObject和ObservedObject中使用我的数据时,它们不是相同的数据,但是它们在内存中创建了不同的变量,我们如何制作StateObjectObservedObject处理相同的数据?

例如,我的ObservableObject类有一个名为的变量stringOfText,默认情况下,No Data!我将创建一个StateObject变量并开始读取默认值stringOfText,然后更改stringOfText的默认值,并且它不显示更新ObservedObject我做错了什么?

class TextModel: ObservableObject {
    @Published var stringOfText: String = "No Data!"
}

struct ContentView: View {
    @ObservedObject var readStringOfTextView = TextModel()

    var body: some View {
        TextView()

        Text(readStringOfTextView.stringOfText)
            .foregroundColor(Color.black)
    }
}

struct TextView: View {
    @StateObject var textModel = TextModel()

    var body: some View {
        Text(textModel.stringOfText)
            .padding()
            .foregroundColor(Color.red)

        Button(action: {
            textModel.stringOfText = "Hello, world!"

        }) {
            Text("update string of Text")
                .padding()
        }
    }
}
他的脾气

如何使StateObject和ObservedObject处理同一数据?

您可以通过共享实例来实现它,例如:

class TextModel: ObservableObject {
    static let shared = TextModel()     // << here !!

    @Published var stringOfText: String = "No Data!"
}

struct ContentView: View {
    @ObservedObject var readStringOfTextView = TextModel.shared  // << here !!

// ... other code
}

struct TextView: View {
    @StateObject var textModel = TextModel.shared // << here !!

// ... other code
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何在onChange / onReceive中使用ObservableObject?

来自分类Dev

我们如何在SwiftUI中访问List的DisclosureGroup?

来自分类常见问题

我们如何在SwiftUI中定义常量swiftUI类型的字体?

来自分类Dev

我们如何在React功能组件中的相同功能中获取更新的道具?

来自分类Dev

我们如何在一个表中检索相同的数据?

来自分类Dev

我们如何在迁移学习中为我们的培训设置标签?

来自分类Dev

我们如何在GDB中完成函数调用?

来自分类Dev

我们如何在Liferay中创建后退按钮

来自分类Dev

我们如何在Ruby中做图表示

来自分类Dev

我们如何在sphinx文档中嵌入图像?

来自分类Dev

我们如何在VSCode中编辑Rust文件?

来自分类Dev

我们如何在iPhone中检测人脸

来自分类Dev

我们如何在Dart中删除对象?

来自分类Dev

如何在我们的JavaScript中触发Bootstrap

来自分类Dev

我们如何在消息中抛出异常?

来自分类Dev

我们如何在WebAPI中隐藏属性?

来自分类Dev

我们如何在Java中调用多个线程?

来自分类Dev

我们如何在Java中实现抽象?

来自分类Dev

如何在R中堆叠我们的数据

来自分类Dev

我们如何在角度8中添加链接?

来自分类Dev

我们如何在RetryContext中获得JobId?

来自分类Dev

我们到底如何在Python中利用“ continue”?

来自分类Dev

我们如何在Linux中读取char *

来自分类Dev

我们如何在Ruby中做图表示

来自分类Dev

我们如何在collectionview中传递多个URL

来自分类Dev

我们如何在Swift中评估bool值?

来自分类Dev

我们如何在NSMutableDictionary中存储浮动值

来自分类Dev

我们如何在消息中抛出异常?

来自分类Dev

我们如何在Java中调用多个线程?

Related 相关文章

热门标签

归档