flutter - Flutter BLoC 不断重建 CircularProgressIndicator
问题描述
我的 CircularProgressIndicator 被重建 2-3 次,即使状态没有多次发出,它也会使旋转动画每次都重新启动。
我的 BlocBuilder:
BlocBuilder<DayDetailedCubit, DayDetailedState>(
builder: (context, state) {
if (state is Loading) {
print("loading");
// return LoadingIndicator();
return CircularProgressIndicator();
} else if (state is Loaded) {
return Expanded(
child: ListView(
children: [
SizedBox(
height: CustomPaddings.tabListSpacing * 0.6,
),
MoodSection(moodEntries: state.dayDetailed.moodEntries),
StressSection(stressEntries: state.dayDetailed.stressEntries,),
SectionAchievement(achievementEntries: state.dayDetailed.achievementEntries,),
SizedBox(
height: CustomPaddings.tabListSpacing,
),
],
),
);
} else if (state is Initial) {
return Text("initial");
} else if (state is Error) {
return Text("error");
}
return Text("unknown");
},
),
我正在从我的 Cubit 发出 Loading 状态:
Future<void> getDayDetailed(Timestamp timestamp) async {
emit(Loading());
print("cubit: get day detailed");
final failureOrDayDetailed = await getDayDetailedEntries(timestamp);
failureOrDayDetailed.fold(
(l) {
print("error");
emit(Error());
}, (dayDetailed) => emit(Loaded(dayDetailed)));
}
最后 getDayDetailed 仅从此处的初始状态调用:
@override
void initState() {
super.initState();
BlocProvider.of<DayDetailedCubit>(context).getDayDetailed(widget.timestamp);
}
据我所知,即使状态被多次发出,如果内容没有不同,Bloc 也不会重建,所以我不确定为什么我的 CircularProgressIndicator 被重建了几次。
解决方案
推荐阅读
- javascript - 为什么我不断收到 TypeError: User is not a constructor?
- github - GitHub - 限制拉取请求的提交数量
- php - MySql Inner Join 不在 Google 图表中显示数据
- python - 从数字+单词串的混合中提取数字
- .net - 为什么 Reinforced.Typings 完全忽略了 xml 配置文件?
- android - 为什么当我使用自定义主机和架构时 Deeplink 不起作用?
- plugins - Flutter 插件单元测试中 MethodCall 列表的用途
- visual-studio-code - 如何在 VS Code 中创建自定义键绑定片段
- c# - 将页面重定向到另一个页面时出现内部服务器错误
- c# - 如何在 linux 中通过 c# .net core 生成机器唯一代码?