我的目标是使用 bloc 模式在 Flutter 中创建一个编辑个人资料页面。
我已经搜索了一种更好/更清洁的方法来使用 Bloc 在 Flutter 中创建用户个人资料页面,但我找不到任何东西。
现在我必须列出每个字段。以下是 2 个字段的示例:
final _firstNameController = BehaviorSubject<String>();
final _lastNameController = BehaviorSubject<String>();
Function(String) get firstNameChanged => _firstNameController.sink.add;
Function(String) get lastNameChanged => _lastNameController.sink.add;
Stream<String> get firstNameStream => _firstNameController.stream;
Stream<String> get lastNameStream => _lastNameController.stream;
String get firstName => _firstNameController.value;
String get lastName => _lastNameController.value;
@override
void dispose() {
_firstNameController?.close();
_lastNameController?.close();
}
还有更多字段,如果可以避免的话,我不想拥有所有这些代码。
我宁愿只有 1 个用户群并更新该用户的特定字段。我已将以下内容添加到用户组中。
final _userFetcher = BehaviorSubject<User>();
Observable<User> get userStream => _userFetcher.stream;
User get user => _userFetcher.value;
Function(User) get changeUser => _userFetcher.sink.add;
@override
void dispose() async {
await _userFetcher.drain();
_userFetcher.close();
}
这是我的用户模型的示例:
class User {
final Name name;
User.fromJson(Map<String, dynamic> json)
: name = Name.fromJson(json);
Map<String, dynamic> toJson() => {
"first": name.first,
"last": name.last,
};
}
问题是我不知道如何使用文本字段来编辑“用户”模型中的“拳头名称”和“姓氏”字段。
这可能吗,我是不是走错了路,还是应该坚持单独列出每个字段?