gpt4 book ai didi

flutter bloc streambuilder with refreshindicator 重建两次

转载 作者:IT王子 更新时间:2023-10-29 07:15:14 28 4
gpt4 key购买 nike

Widget build(BuildContext context) {
final blocData = WeatherBlocProvider.of(context).bloc;
if (WeatherBloc.permission == true) {
blocData.forceRefreshAll();
return Container(
child: StreamBuilder(
stream: blocData.zipAll,
builder: (scontext, snapshot){
//to do
}

现在我在 streambuilder 中使用 bloc 模式当我刷新父小部件时,我可以看到 blocData.forceRefreshAll() 这一行被请求了两次。(我的意思是构建方法被请求了两次)我怎样才能只做一个?我看到了 unwanted rebuild subject 他们说使用 instance 或 initstate 但是使用 bloc 模式我认为使用 initstate 是不可能的并且 const 值不适用 blocData.forceRefreshAll()

最佳答案

build 方法用于构建小部件树,由于各种原因可以多次调用它。这就是为什么不应该在 build 中获取数据的原因。 如果您无法在 initState 中访问 bloc 因为还没有 context - 覆盖另一个方法,didChangeDependencies。它在 initState 之后调用,它可以使用 context,因此您可以使用它访问 bloc provider。

关于flutter bloc streambuilder with refreshindicator 重建两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57585372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com