【问题标题】:Stacked architecture - User persistance堆叠架构 - 用户持久性
【发布时间】:2020-11-27 10:17:22
【问题描述】:

我在我的 Flutter 应用中使用 stacked architecture。 一切正常,但现在我正在尝试实现用户身份验证时遇到问题。

我的用户类应该在继承我的登录小部件的所有小部件和屏幕上可用。 但我不知道该怎么做,而且我在我所做的研究中找不到这些信息。

我应该在我的堆叠架构之上使用Provider 将我的User 类传递给子小部件吗?

例如,我有一个链接到 ViewModel 的视图,我想访问视图中的 User 类,但我不知道如何与该视图共享它,因为我的 User 类不可用在这个屏幕上。


class SettingsViewModel extends BaseViewModel {
// Some methods and getters that I use in my View
}


class Settings extends StatefulWidget {
  @override
  _SettingsState createState() => _SettingsState();
}

class _SettingsState extends State<Settings> {
  @override
  Widget build(BuildContext context) {

    return ViewModelBuilder<SettingsViewModel>.reactive(
        viewModelBuilder: () => SettingsViewModel(),
        builder: (context, model, child) => Scaffold(
              body: SafeArea(
                  child: SingleChildScrollView(
                child: Container(
                  padding: EdgeInsets.symmetric(horizontal: 20),
                  child: Column(
                    children: [
                      Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: [
                          // I would like to display here the name of my User
                          Text("Jhon"),
                          Icon(Icons.close),
                        ],
                      ),
                    // ... Rest of the view ...

【问题讨论】:

    标签: flutter dart stacked


    【解决方案1】:

    您不需要在 Stacked 之上提供 Provider,因为 Stacked 已经使用了 Provider,它是它的一个包装器。我建议你在 Youtube 上观看创作者关于 Stacked 架构的教程。

    我会将用户对象保存在服务中(例如 AuthService),然后将该服务导入到我需要它的 ViewModel 中。

    (Stacked tutorial 1,Stacked tutorial 2,在这种情况下您可能需要什么tutorial about services)

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      相关资源
      最近更新 更多