Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何侦听流,然后将其传递给Streambuilder?_Flutter_Dart_Stream_Stream Builder - Fatal编程技术网

Flutter 如何侦听流,然后将其传递给Streambuilder?

Flutter 如何侦听流,然后将其传递给Streambuilder?,flutter,dart,stream,stream-builder,Flutter,Dart,Stream,Stream Builder,目前我正在收听Streambuilder中的websocket流。当我收到数据时,我在streambuilder中修改数据并将其传递给小部件。但是,由于多次调用build,相同的接收数据会被多次处理。因此,我希望在Streambuilder之外执行数据处理(在receivedMessage(data)中完成)。因此,为了避免多次触发Streambuilder,我尝试将数据处理从小部件中移除。这是正确的方法吗?我应该怎么做 class _DrawingPageState extends State

目前我正在收听Streambuilder中的websocket流。当我收到数据时,我在streambuilder中修改数据并将其传递给小部件。但是,由于多次调用build,相同的接收数据会被多次处理。因此,我希望在Streambuilder之外执行数据处理(在receivedMessage(data)中完成)。因此,为了避免多次触发Streambuilder,我尝试将数据处理从小部件中移除。这是正确的方法吗?我应该怎么做

class _DrawingPageState extends State<DrawingPage> {
  void initState() {
    super.initState();
    channel = IOWebSocketChannel.connect(ipVal);
    _stream = channel.stream;
   }

@override
  Widget build(BuildContext context) {
    child: StreamBuilder(
                          stream: _stream,
                          builder: (context, snapshot) {
                            if(snapshot.hasData){
                              data = receivedMessage(data);
                              print("Received Message");
                              return Text(data);
                            }
                              else if(snapshot.hasError){
                                print(snapshot.error);
                              }
                            return Text(data);
                          }
                        ),
  }
}
class\u DrawingPageState扩展状态{
void initState(){
super.initState();
通道=IOWebSocketChannel.connect(ipVal);
_stream=channel.stream;
}
@凌驾
小部件构建(构建上下文){
孩子:StreamBuilder(
溪流:_溪流,
生成器:(上下文,快照){
if(snapshot.hasData){
数据=接收到的消息(数据);
打印(“收到的信息”);
返回文本(数据);
}
else if(snapshot.hasrerror){
打印(快照错误);
}
返回文本(数据);
}
),
}
}

我可以使用同一个流吗?我想在initstate中侦听流并将接收到的流数据转发给streambuilder。我可以使用相同的流吗?我想在initstate中侦听流,并将接收到的流数据转发给streambuilder。