dart - 在 BlocBuilder 中将类初始化为模型并出现错误
问题描述
在我的应用程序中,我有如下结构的模型,我想在内部初始化它BlocBuilder
以更新 ui 元素Text()
,例如:
class _Login extends State<Login> {
UserInfo _userInfo = UserInfo();
LoginListingBloc loginListingBloc;
@override
void initState() {
loginListingBloc = BlocProvider.of<LoginListingBloc>(context);
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: BlocBuilder(
bloc: loginListingBloc,
builder: (BuildContext context, LoginListingStates state) {
if (state is LoginUninitializedState) {
} else if (state is LoginFetchedState) {
_userInfo = state.userInfo;
print(_userInfo.name);
}
return Text("My Username from server is: $_userInfo.name");
},
),
);
}
}
我不想制作一些变量,例如name
,email
或者将它们avatart
填充到内部BlocBuilder
以使用它们,因为我有这个类模型,我认为我可以在内部初始化BlocBuilder
以使用它,
不幸的是,当我运行应用程序时出现此错误:
构建 BlocBuilder(dirty, dependencies: [MediaQuery], state: _BlocBuilderBaseState#2342d): Invalid argument(s) 引发了以下 ArgumentError
LoginListingStates
课堂内容:
abstract class LoginListingStates {}
class LoginUninitializedState extends LoginListingStates {}
class LoginFetchingState extends LoginListingStates {}
class LoginFetchedState extends LoginListingStates {
final UserInfo userInfo;
LoginFetchedState({this.userInfo}) : assert(userInfo != null);
}
class LoginErrorState extends LoginListingStates {}
和我的UserInfo
模型课:
class UserInfo {
String _name;
String _email;
String _avatar;
UserInfo();
UserInfo.fromJson(Map<String, dynamic> json)
: _name = json["name"],
_email = json["email"],
_avatar = json["avatar"],
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = _name;
data['email'] = _email;
data['avatar'] = _avatar;
return data;
}
String get email => _email;
String get name => _name;
int get avatar=> _avatar;
}
解决方案
推荐阅读
- javascript - 有没有办法计算 2 个对象数组之间的值,然后将其合并到一个数组中?
- kubernetes-helm - helm chaining multiple conditions
- typescript - 打字稿:是否有递归键?
- c# - 简化此 if else 语句的最佳方法
- amazon-web-services - 在 s3 存储桶中找不到文件时的气流状态
- java - Jetty-Jersey 如何处理反向代理后面的请求?
- excel - 将形状(图片)复制到另一个工作簿使图片保存为 JPEG 而不是 PNG
- ruby-on-rails - 你可以创建一个没有表的数据库支持的 Rails 模型吗?
- python - pyqtgraph 滚动图:分块绘图,在当前窗口中仅显示最新的 10 秒样本
- c++ - 强制 C++ 为参数分配新地址