【发布时间】:2021-03-30 01:49:27
【问题描述】:
我有一个 StreamBuilder,它监听使用包 web_socket_channel: ^1.1.0 创建的流。
Stream getLocationsStream({LatLngBounds latLngBounds, LatLng location}) {
if (branchMapChannel == null)
branchMapChannel = IOWebSocketChannel.connect(wsEndpointURL("business/branch/maps"));
return branchMapChannel.stream;
}
StreamBuilder 监听这个流(getLocationsStream())。我在名为 Maps() 的自定义小部件中使用此 Streambuilder。在主页中调用 Maps() 时,它可以正常工作。但是当 Maps() 在另一个页面上被调用时,它会显示以下错误。
错误状态:Stream 已被监听。
当异常被抛出时,这是堆栈: 我/颤振(2977):#3 _CompleterStream.listen 包:async/src/stream_completer.dart:135 我/颤振(2977):#7 _StreamBuilderBaseState._subscribe 包:flutter/…/widgets/async.dart:137 我/颤振(2977):#8 _StreamBuilderBaseState.initState 包:flutter/…/widgets/async.dart:111 我/颤振(2977):#9 StatefulElement._firstBuild 包:flutter/…/widgets/framework.dart:4812 我/颤振(2977):#10 ComponentElement.mount 包:flutter/…/widgets/framework.dart:4649 我/颤振(2977):#11 Element.inflateWidget 包:flutter/…/widgets/framework.dart:3615 我/颤振(2977):#12 Element.updateChild 包:flutter/…/widgets/framework.dart:3377 我/颤振(2977):#13 ComponentElement.performRebuild 包:flutter/…/widgets/framework.dart:4700
【问题讨论】: