【问题标题】:SwiftUI Environment Object alternative in FlutterFlutter 中的 SwiftUI 环境对象替代方案
【发布时间】:2020-10-04 15:46:44
【问题描述】:

我在开始学习 Flutter 之前学习了 SwiftUI,但我无法理解如何在 SwiftUI 中拥有类似于 Environment 对象的东西?

我能想到的一个解决方案是使用单例,但我不确定使用单例是否是一个好的 Flutter 架构解决方案。

例如,在 SwiftUI 中,您可以像这样访问数据:

struct MyView: View {
    @EnvironmentObject DataController data

    var body: some View {
        Text(data.title)
    } 
} 

DataController 看起来像这样:

class DataController {
    title = "Hello!"
}

另一方面,在颤振中,如果我使用单例,它将如下所示:

class MyWidget extends StateLessWidget {
    @override
    Widget build(BuildContext context) {
        return Text(DataController.data.title);
    } 
}

而颤振中的DataController 使用的是singleton

class DataController {
    static DataController data = DataController();
    title = "Hello!";
}

有没有更好的方法来实现此功能,而无需使用提供程序包将参数和值向下传递到小部件树?

【问题讨论】:

    标签: flutter dart swiftui


    【解决方案1】:

    我实际上正在尝试解决同样的问题,但我认为提供程序包可能是正确的选择。 pub.dev 上有很多不错的教程和完整的安装指南

    【讨论】:

      猜你喜欢
      • 2011-04-25
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多