Могу ли я получить доступ к данным в потоках Bloc извне метода сборки?
Например, в методе сборки я могу получить доступ к данным с помощью snapShot.data.Например:
return StreamBuilder(
//initialData: Colors.blue,
stream: colorBloc.colorStream,
builder: (BuildContext context, snapShot) => Container(
width: menuButtonSize,
height: menuButtonSize,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: snapShot.data, //This returns the correct colour previously stored in this stream.
boxShadow: [
BoxShadow(
color: Colors.black,
blurRadius: 15,
),
],
),
),
);
Но для устранения проблем с другим экземпляром Bloc, который я пытаюсь заставить работать, я хотел бы как-то распечатать текущее значение snapShot.data, чтобы я мог увидеть, что этоделает, и если он обновляется должным образом, потому что в настоящее время он не работает.
Текущий фрагмент нерабочего блока:
Widget customTheme() {
return StreamBuilder(
initialData: true,
stream: customToggleBloc.customToggleStream,
builder: (BuildContext context, snapShot) => GestureDetector(
onTap: (){
snapShot.data == true ? widget?._callback('custom') : widget?._callback('clearcustom'); //Section A
},
child: Container(
width: menuButtonSize + 8,
height: menuButtonSize + 8,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: AppState.brownTheme,
boxShadow: [
BoxShadow(
color: Colors.black,
blurRadius: 25,
),
],
),
child: new IconTheme(
data: new IconThemeData(
color: Colors.white,
size: 35,
),
child: snapShot.data == true ? new Icon(Icons.add_photo_alternate) : new Icon(Icons.cancel), // Section B
),
),
),
);
}
Так что я хотел бы это иметькнопка, которая всегда находится в одном из двух состояний.1) Он отображает Icons.add_photo_alternate и позволяет выбрать изображение из галереи;2) Он отображает Icons.cancel и удаляет ранее выбранное изображение.В разделе A обрабатываются параметры события onPress, а в разделе B обрабатывается отображаемый значок.
На самом деле я всегда получаю Icons.add_photo_alternate, а при нажатии фактически вызывает ОБА альтернативных блоков кода.
Так что мне бы очень хотелось получить доступ к этим данным, чтобы увидеть, где я могу ошибаться!
Я пробую варианты вещей, подобные:
print(customToggleBloc.customToggleSink.toString());
, который возвращает:
Instance of '_StreamSinkWrapper<bool>'
А не значение внутри.Можно ли получить доступ к этой информации?