Я, вероятно, просто неправильно понимаю поток дротика, но когда я делаю это:
TabBarView(
children: [
...
StreamBuilder(
builder(context, url){
...
print(url);
...
},
stream: () async* { ... }().asBroadcastStream(),
initialData: 'Dope',
)
...
]
)
Я получаю некоторые странные поведения при рендеринге StreamBuilder с использованием TabBarView.
Сначала я должен используйте asBroadcastStream () в противном случае я получаю:
Плохое состояние: поток уже прослушан
, который, как я признаю, является плохим решением.
Но пока решение работает, возврат к StreamBuilder в TabBarView теперь перестроит повторное использование initialData, а не последний снимок потока. Вот результат печати при возврате к вкладке дважды:
I / флаттер (14541): допинг
I / флаттер (14541): ProperURL
I / флаттер (14541) : dope
I / flutter (14541): dope
I image Обе проблемы связаны, но я не понимаю, почему StreamBuilder повторно использует asyn c* и initialData