flutter - 无法从函数返回类型为 'Stream<dynamic>' 的值,因为它的返回类型为 'Stream<Color>'

标签 flutter stream

迁移到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>'. 

但我不太确定这意味着什么,或者如何尝试解决它。​​

最佳答案

您只需编辑此行 StreamController _streamListController = StreamController<Color>.broadcast();StreamController<Color> _streamListController = StreamController<Color>.broadcast();

错误表明 colorStreamStreamColor但你给它一个 Streamdynamicdynamic可以是任何东西。所以这是一个错误的类型分配。流当然是通用的。

关于flutter - 无法从函数返回类型为 'Stream<dynamic>' 的值,因为它的返回类型为 'Stream<Color>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69347573/

相关文章:

c++ - C++检测输入是否不满足条件

Flutter 下载文件到手机下载目录

android - Flutter:键盘出现时背景图像被挤压

ios - 使用 AVPlayer 处理流媒体事件

java - 该循环将读取输入流多少次?

asynchronous - 如何仅在 Dart 中完成上一次执行后才定期调用函数?

javascript - MediaElementJS 播放器 + 重新加载 HLS 流 - 任何解决方案?

flutter - 从 DART 中的 List<Map<String,dynamic>> 获取特定键的数组

flutter - 如何在 CustomMultiChildLayout 中拥有动态高度?

flutter - 内部没有高度的 WebView 滚动不起作用