如何使用 flutter_bloc 添加 CircularProgressIndicator

Posted

技术标签:

【中文标题】如何使用 flutter_bloc 添加 CircularProgressIndicator【英文标题】:How to add CircularProgressIndicator using flutter_bloc 【发布时间】:2021-11-04 20:49:56 【问题描述】:

我试图让当我提交按钮时,isLoading 变量设置为 true,当块发出状态时它返回 false,以显示循环进度指示器。 我的问题是我不知道在哪里或如何放置该变量,也不知道如何告诉集团这个变量在 BlocBuilder 之前/之外是真的,

这是我的按钮的代码:

TextButton(
                  child: Text("submit"),
                  onPressed: () 
                    
                    context
                        .read<ShowMusicHomeBloc>()
                        .add(OnSearchTracks(q: _searchText.text));

                    
                    _searchText.clear();
                  ,
                ),

你能给我一个实际的例子吗?如何使用flutter_bloc将此变量isLoading设置为true?

【问题讨论】:

【参考方案1】:

您可以创建一个LoadingState 并在按下按钮时发出它。

abstract class MyState 

class MyLoadingState extends MyState 

class MyLoadedState extends MyState 
  final MyData data;
  MyLoadedState(this.data);


// other states like ErrorState or InitialState

class MyCubit extends Cubit<MyState>
  MyCubit(this.someService) : super(MyLoadingState());

  final SomeService someService;

  Future<void> fetchData()
    emit(MyLoadingState);
    
    final fetchedData = someService.fetchData();
    emit(MyLoadedState(fetchedData));
  

您也可以将相同的概念应用于Blocs。

【讨论】:

以上是关于如何使用 flutter_bloc 添加 CircularProgressIndicator的主要内容,如果未能解决你的问题,请参考以下文章

如何使用flutter_bloc处理动画

如何在我的项目中应用flutter_bloc?

flutter_bloc 4.0.0如何获取事件属性参数。

谁能说出 Flutter 中“flutter_bloc”和“bloc”包的区别

需要帮助了解 flutter_bloc 如何注入 bloc

使用 flutter_bloc 库有啥缺点