类到类访问数据
Posted
技术标签:
【中文标题】类到类访问数据【英文标题】: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>
谢谢。
【问题讨论】:
【参考方案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 您可能需要在操作用户对象时添加非空条件,或者使用异步进程来等待该用户数据。以上是关于类到类访问数据的主要内容,如果未能解决你的问题,请参考以下文章