【问题标题】:A value of type 'Stream<dynamic>' can't be returned from the function because it has a return type of 'Stream<Color>'无法从函数返回类型为“Stream<dynamic>”的值,因为它的返回类型为“Stream<Color>”
【发布时间】: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>'. 

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

【问题讨论】:

    标签: flutter stream


    【解决方案1】:

    您只需将这一行 StreamController _streamListController = StreamController&lt;Color&gt;.broadcast(); 编辑为 StreamController&lt;Color&gt; _streamListController = StreamController&lt;Color&gt;.broadcast();

    错误说colorStreamColorStream,但你给它一个Streamdynamicdynamic 可以是任何东西。所以这是一个错误的类型分配。 Stream 当然是通用的。

    【讨论】:

    • 完美,看起来不错。谢谢莫内尔。
    【解决方案2】:

    尝试像这样将 Type Color 添加到您的 StreamController:

    StreamController<Color> _streamListController = StreamController<Color>.broadcast();
    

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 2021-08-20
      • 2022-10-12
      • 2022-01-26
      • 2022-01-26
      • 2021-01-25
      • 2021-09-27
      • 1970-01-01
      • 2021-07-11
      相关资源
      最近更新 更多