Я пытаюсь объединить потоки в один поток, который возвращает логическое значение, которое показывает, имеют ли оба потока значения. Я использую новый поток, чтобы активировать кнопку, если оба значения не пусты. Вот мой blo c
// import 'package: async / asyn c .dart'; import 'dart: asyn c';
import 'package: rxdart / rxdart.dart';
class VotingBloc {
final numVotes = PublishSubject<String>();
final pin = PublishSubject<String>();
Function(String) get votesChanged => numVotes.sink.add;
Function(String) get pinChanged => pin.sink.add;
Stream<bool> get submitCheck => CombineLatestStream.combine2(numVotes, pin, (a, b) => true);
dispose() {
numVotes.close();
pin.close();
}
}
final votingBloc = VotingBloc();
На моем главном экране печать snapshot.data выдает мне значение NULL.
Container(
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.symmetric(horizontal: 5.0),
child: StreamBuilder<Object>(
stream: votingBloc.submitCheck,
builder: (context, snapshot) {
print(snapshot.data);
return RaisedButton(
// elevation: 5.0,
onPressed: snapshot.hasData ? () => print('object') : null ,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(25.0)),
padding: EdgeInsets.all(15.0),
color: Color(0xfff64c72),
child: Text(
'VOTE NOW',
style: TextStyle(
color: Colors.white,
letterSpacing: 1.5,
fontSize: 18.0,
fontWeight: FontWeight.bold,
fontFamily: 'OpenSans',
),
),
);
}
),
),
Как лучше всего это воссоздать?