代码之家  ›  专栏  ›  技术社区  ›  LorenzoBerti

向沉镖传递多个参数

  •  0
  • LorenzoBerti  · 技术社区  · 6 年前

    现在我有了一个列表,其中显示了一个具有属性“Age”的用户。

    通过列表上的两个按钮,我应该能够增加或减少每个用户的年龄。

    /** 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个参数,以知道我是否应该添加或删除?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Hadrien Lejard    6 年前

    向接收器传递多个参数的唯一方法是创建一个特定的对象。

    class UserAgeEvent {
       final User user;
       final int increaseAge;
    
       UserAgeEvent(this.user, this.increaseAge);
    }
    
    ageUserSink.add(UserAgeEvent(user, 1));
    ageUserSink.add(UserAgeEvent(user, -1));