【问题标题】:Class to Class Access Data类到类访问数据
【发布时间】:2021-10-31 02:29:45
【问题描述】:

我的课程有问题。我使用 Google 身份验证将用户数据保存在 user_info_screen 中。如何在另一个页面上有此数据的类中提取此用户数据?

 class UserInfoScreen extends StatefulWidget {
   UserInfoScreen({Key key, User user})
      : _user = user,
        super(key: key);

  final User _user;

  @override
  _UserInfoScreenState createState() => _UserInfoScreenState();
}

class _UserInfoScreenState extends State<UserInfoScreen> {

  User _user;

我想通过拉取这些数据来使用(用户)的页面

class HomeView extends StatefulWidget {
  @override
  _HomeViewState createState() => _HomeViewState();
}

class _HomeViewState extends State<HomeView> {

}

谢谢。

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies flutter-test flutter-widget


    【解决方案1】:

    处理它的好方法,特别是如果您将在其他页面上使用用户数据,是实现商店概念:https://pub.dev/packages/get

    UserInfoScreen.dart

    GetStorage box = GetStorage();
    box.write('userData', _user);
    

    HomeView.dart

    GetStorage box = GetStorage();
    User _user = box.read('userData');
    

    或将其作为参数传递

    UserInfoScreen.dart

    Get.to(() => HomeView(), arguments: [
        {"userData": _user}
    ]);
    

    HomeView.dart

      dynamic argumentData = Get.arguments;
    
      @override
      void onInit() {
        print(argumentData[0]['userData']);
        super.onInit();
      }
    

    【讨论】:

    • 它工作得很好,谢谢,但我收到此错误并且用户的显示名称返回 null ------[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:将对象转换为可编码对象失败:“用户”实例 ------ 无论如何我可以在热重启后看到 user.dispname。我该如何解决这个问题?
    • @Ferhat37ozkan 您可能需要在操作用户对象时添加非空条件,或者使用异步进程来等待该用户数据。
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 2018-08-24
    • 2013-08-18
    相关资源
    最近更新 更多