ReactiveCocoa简介四,聚合信号

前端之家收集整理的这篇文章主要介绍了ReactiveCocoa简介四,聚合信号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

登录按钮只有当用户名和密码输入框的输入都有效时才工作。

combineLatest:reduce:方法把validUsernameSignal和validPasswordSignal产生的最新的值聚合在一起,并生成一个新的信号。每次这两个源信号的任何一个产生新值时,reduce block都会执行,block的返回值会发给下一个信号。

RACSignal *signUpActiveSignal =
  [RACSignal combineLatest:@[validUsernameSignal,validPasswordSignal]
                    reduce:^id(NSNumber*usernameValid,NSNumber *passwordValid){
                      return @([usernameValid boolValue]&&[passwordValid boolValue]);
                    }];

已经有了合适的信号,这信号和按钮的enabled属性绑定。
[signUpActiveSignal subscribeNext:^(NSNumber*signupActive){
   self.signInButton.enabled =[signupActive boolValue];
 }];



  • 分割——信号可以有很多subscriber,也就是作为很多后续步骤的源。注意上图中那个用来表示用户名和密码有效性的布尔信号,它被分割成多个,用于不同的地方。

  • 聚合——多个信号可以聚合成一个新的信号,在上面的例子中,两个布尔信号聚合成了一个。实际上你可以聚合并产生任何类型的信号。

结果就是,代码中没有用来表示两个输入框有效状态的私有属性了。这就是用响应式编程的一个关键区别,你不需要使用实例变量来追踪瞬时状态。 原文链接:https://www.f2er.com/react/307185.html

猜你在找的React相关文章