Flutter 如何侦听流,然后将其传递给Streambuilder?
目前我正在收听Streambuilder中的websocket流。当我收到数据时,我在streambuilder中修改数据并将其传递给小部件。但是,由于多次调用build,相同的接收数据会被多次处理。因此,我希望在Streambuilder之外执行数据处理(在receivedMessage(data)中完成)。因此,为了避免多次触发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
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。