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

时间:2020-06-16 18:08:09

标签: flutter dart stream stream-builder

目前,我正在Streamstreamer中收听websocket流。当我接收数据时,我在streambuilder本身中修改数据并将其传递给小部件。但是由于多次调用构建,因此相同的接收数据将被多次处理。所以我想在Streambuilder外部执行数据处理(在receiveMessage(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);
                          }
                        ),
  }
}

0 个答案:

没有答案