目前,我正在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);
}
),
}
}