我正在用Dart研究Flutter中的BLoC模式。
现在,我有一个列表,显示具有属性“年龄”的用户。
通过列表上的2个按钮,我应该能够增加或减少每个用户的年龄。
所以我创建了许多流和接收器,如:
/** ADD AGE*/
BehaviorSubject<User> _userAddAgeController = new BehaviorSubject<User>();
Sink<User> get inAddAgeUser => _userAddAgeController.sink;
/** REMOVE AGE */
BehaviorSubject<User> _userDecreaseAgeController = new BehaviorSubject<User>();
Sink<User> get inDecreaseAgeUser => _userDecreaseAgeController.sink;
然后在BlocClass的构造函数中
UserBloc(this.db) {
_userAddAgeController.listen(_addAge);
_userDecreaseAgeController.listen(_decreaseAge);
}
然后是两个功能:
void _addAge(User u){ }
void _decreaseAge(User u){ .. }
所以我的问题是:
是否可以集中传递例如2个参数的控制器以了解是否应该添加或删除?
答案 0 :(得分:1)
将多个参数传递给接收器的唯一方法是创建一个特定的对象。
class UserAgeEvent {
final User user;
final int increaseAge;
UserAgeEvent(this.user, this.increaseAge);
}
ageUserSink.add(UserAgeEvent(user, 1));
ageUserSink.add(UserAgeEvent(user, -1));