在我的应用程序中,我有如下结构的模型,我想在内部初始化它
BlocBuilder
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公司
利用这个,
生成时引发了以下ArgumentError
BlocBuilder(脏,
依赖项:[MediaQuery],状态:
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;
}