类型'_ControllerSubscription <String>'不是类型'Stream <dynamic>'的子类型

时间:2020-05-07 21:38:52

标签: flutter stream listener bloc

我正在使用bloc将数据输入到textField并将其存储在变量中。在将侦听器添加到流后,我不断收到错误消息:“类型'_ControllerSubscription'不是类型'流'的子类型”。

用户界面:

/****/
   Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;
    var bloc = Bloc();

    return Container(
      color: Colors.white,
      child: Column(children: <Widget>[
        SizedBox(height: size.height *.2 ,),
  StreamBuilder( stream: bloc.textStream,
     builder:    (context, snapshot ){
       return  Container(
          width: size.height * .5,
          height: size.height *.2,
          child: TextField(
 onChanged: bloc.changeText,
      textAlign: TextAlign.right,
      decoration: InputDecoration(
        hintStyle: TextStyle(
          fontSize: 14,
          color: Colors.black,
        ),),
 /****
   *****/   

集团:

import 'dart:async';

class Bloc {

var _text='';
final  _textFieldController = StreamController<String>();

 get textStream => _textFieldController.stream
                  .listen( (value){_text = value;});    

 Function(String) get changeText => _textFieldController.sink.add;

  void dispose() {
   _textFieldController.close();
  }

}

1 个答案:

答案 0 :(得分:0)

尝试更换

get textStream => _textFieldController.stream
                  .listen( (value){_text = value;});  

get textStream => _textFieldController.stream;