【发布时间】:2021-09-27 13:33:10
【问题描述】:
迁移到flutter 2后,下面这段代码不再起作用:
class ColorBloc extends BlocBase {
// streams of Color
StreamController _streamListController = StreamController<Color>.broadcast();
// sink
Sink get colorSink => _streamListController.sink;
// stream
Stream<Color> get colorStream => _streamListController.stream;
// function to change the color
changeColor(String chosenColour) {
switch(chosenColour) {
case 'blackTheme':
{
colorSink.add(AppState.blackTheme);
}
break;
case 'blueTheme':
{
colorSink.add(AppState.blueTheme);
}
break;
case 'greenTheme':
{
colorSink.add(AppState.greenTheme);
}
break;
case 'redTheme':
{
colorSink.add(AppState.redTheme);
}
break;
case 'whiteTheme':
{
colorSink.add(AppState.whiteTheme);
}
break;
}
}
@override
dispose() {
_streamListController.close();
}
}
这一行的问题:
Stream<Color> get colorStream => _streamListController.stream;
给出的原因是:
A value of type 'Stream<dynamic>' can't be returned from the function 'colorStream' because it has a return type of 'Stream<Color>'.
但我不确定这意味着什么,或者如何尝试解决它。
【问题讨论】: