如何使用StreamTransform Flutter进行验证,该验证取决于另一个字段的值

时间:2020-02-07 17:22:34

标签: flutter dart bloc

这些字段是选择字段,另一个是身份证字段。这取决于您选择的字段具有不同的验证。 我得到了select的值,但是在验证字段时,它没有值

final _idController=StreamController<String>.broadcast();
String type = '';
  // The controller to stream the final output to the required StreamBuilder
  final _typeId = BehaviorSubject<String>();
  Stream<String> get typeId => _typeId.stream;

  // The controller to receive the input form the app elements
  final _query = StreamController<String>();
  Sink<String> get query => _query.sink;
  Stream<String> get result => _query.stream;

  // The business logic
  OtherChargesController() {
   result.listen((newType) {
      // Listen for incoming input
      type = newType; // Process the required data
      _typeId.sink.add(type); // Stream the required output
      
    });
   
    //Form State
  }


Stream<String> get id => _idController.stream.transform(type.contains('01') ? validPhysialId : type.contains('02') || type.contains('04') ? validaLegalAndNITEId : type.contains('03') ? validaDIMEXId : validaId);

1 个答案:

答案 0 :(得分:0)

您需要为第二个字段编写侦听器。 在第二个字段中输入值时,附加的侦听器将侦听控制器,您可以在其中实现验证逻辑。 提示:在initState(){}

中注册您的侦听器